Open, save, status, close
Team workspace is a Pro feature. The @workspace commands are available in Pro builds; Free builds keep local definitions and collections.
A team workspace is a folder in a git checkout. The app reads and writes <folder>/.ai-terminal/ and never runs git commit or git push.
@workspace open ~/src/acme-apis
@workspace
@workspace status
@workspace save
@workspace close@workspace with no verb is status. Settings → Team workspace → Open folder is the same open. workspace in the @ palette opens the same commands.
flowchart LR
folder[("Checkout\n.ai-terminal/")]:::store
merge["Merge by name"]:::step
local[("This machine\nkeychain")]:::secret
guard{"Secret\nguard"}:::gate
diff["You review\nthe diff"]:::out
folder --> merge --> local
local --> guard --> diff
classDef store fill:#134e4a,stroke:#5eead4,stroke-width:2px,color:#f4fbfa
classDef secret fill:#FFC131,stroke:#b45309,stroke-width:2px,color:#1a1404
classDef gate fill:#FFC131,stroke:#b45309,stroke-width:2px,color:#1a1404
classDef step fill:#0f766e,stroke:#99f6e4,stroke-width:2px,color:#f4fbfa
classDef out fill:#166534,stroke:#86efac,stroke-width:2px,color:#f0fdf4
linkStyle 0,1 stroke:#5eead4,stroke-width:2.5px
linkStyle 2 stroke:#FFC131,stroke-width:2.5px
linkStyle 3 stroke:#86efac,stroke-width:2.5px
The path is absolute, or it starts with ~. A relative path is rejected with Use an absolute path (or one starting with ~). The same rule is why termorq-cli --workspace . fails.
The files
Pretty JSON, sorted keys, schema version 1. A newer schema is reported, not guessed at.
| File | Contents |
|---|---|
workspace.json | The name |
api-connections.json | Connections, without secret values. A vault reference stays as secret_ref |
endpoints.json | Endpoints, including checks |
collections.json | Collections and captures |
environments.json | Environments, their variables, and customers |
mcp-servers.json | Servers. Secret env values are names only |
.gitignore | Written on save. Ignores local.json and *.local.json |
@workspace save leaves out API secrets and tokens, MCP secret env values and headers, and certificate paths outside the folder. Paths inside the folder are stored relative. Secret-looking header, query, body, and environment variable values become {{name}} placeholders. A placeholder never overwrites a value you already have locally.
A vault reference is kept as written. It is not a secret, and the guard allows a valid akv:// or op://.
Open
Open merges by name into this machine: API connections, endpoints with their checks, collections, environments and customers with variables, and MCP servers. Rows from the workspace show a workspace badge in @apis, @mcp, and @library. A connection whose secret is not here yet shows needs secret. You edit it and enter the secret. That value stays in this computer’s secret store.
Local secrets, favourites, ids, and Connect when the app starts are kept on merge.
The guard
Before anything is written, the app scans the files for JWTs, sk- keys, GitHub, Slack, AWS, and Google tokens, private keys, password= values, and long base64 or hex strings. A hit refuses the save. The message names the file and the kind of secret. It does not print the value. Nothing is written.
Status and close
@workspace status runs git status --porcelain -b and shows the branch and the uncommitted files. @workspace close forgets the folder. Merged definitions stay.
There is no @workspace push. You review the diff and commit it yourself.
The sample workspace is a folder you can open this way. termorq-cli reads the same files and does not write them, except that a plan file is never written back either.