Files and locations
Everything is a plain file on your machine. Nothing here is a database you cannot open.
Paths below use the stable profile's home, ~/.strado. On the dev profile
every one of them is under ~/.strado-dev instead — see
environment and profiles.
Workspace and worktree state
| Path | What |
|---|---|
config/workspaces.json | The workspace registry, and which workspace is active |
config/workspaces/<id>/repos.json | That workspace's repos |
config/workspaces/<id>/state.json | That workspace's worktree state — ticket, title, port, env, notes, order |
config/**/.backups/ | Rotating backups of every store, written automatically before each change |
config/ sits in the server's working directory on the stable profile, and at
~/.strado-dev/config on the dev profile. It is gitignored, and
config.example/ in the repo documents the layout.
Machine-local state
| Path | What |
|---|---|
~/.strado/activity.json | Tracked time per worktree — seconds and a last-active timestamp |
~/.strado/profile.json | Your name, what agents should call you, and the telemetry opt-out |
~/.strado/logs/strado.log | Server lifecycle and dev-server output, rotating at 5 MB |
~/.strado/worktrees/<repoId>/ | The default worktree root, when a workspace opts into one folder |
Credentials
Heads up
All five hold credentials in plain text. They are not encrypted and they are
not in your system keychain — anything running as your user can read them.
Strado creates each with mode 0600, but the mode is applied at creation
only: a file that already existed keeps the permissions it had, and rewriting
it through the app will not tighten them.
| Path | What |
|---|---|
~/.strado/jira.json | Jira site URL, account email, API token |
~/.strado/linear.json | Linear access token and workspace name |
~/.strado/github.json | GitHub tokens, keyed by host or by host and owner |
~/.strado/gitlab.json | GitLab tokens, keyed by host |
~/.strado/license.json | Your sign-in token |
If any of these predates your current install, it is worth checking once:
ls -l ~/.strado/*.json
chmod 600 anything wider than -rw-------.
None of them is ever sent to the browser. The local server makes every call that uses them.
The terminal daemon
| Path | What |
|---|---|
~/.strado/ptyd/ptyd.sock | The daemon's socket, mode 0600 — the file permission is the auth boundary |
~/.strado/ptyd/bin/ | The installed daemon, at a stable path so an upgrade can hand off to it |
~/.strado/ptyd/ptyd.log | The daemon's own log |
On a runner
| Path | What |
|---|---|
~/.strado/runner/versions/<version>/ | One unpacked bundle per installed version |
~/.strado/runner/current | Symlink to the active version |
~/.strado/runner/bin/strado-runner | The command |
~/.strado/runner.json | This box's paired identity |
~/.strado/runner.env | Optional KEY=VALUE settings, read at start |
Resetting
Deleting ~/.strado removes credentials, tracked time and sign-in in one go.
Under a workspace worktree root it would also take uncommitted work with it, so
check what is under ~/.strado/worktrees first.