Terminal and Project scripts
Run real shells inside a Workspace, and share the Setup, Run, and Archive scripts that give every Workspace the same workflow.
The Terminal is the bottom panel of a Workspace, persisting across Chat,
Diff, and Checks. Its tabs hold three kinds of surface: interactive shells
you type into (for ad-hoc git or npm test runs in the worktree), the
streamed output of the managed Project scripts, and a read-only activity
feed.
Project scripts
Project scripts are per-Repository commands that give every Workspace the same workflow, in three kinds:
- Setup runs once on a Workspace's first Turn: install dependencies, generate files. Its output streams inline in the Chat, so the first reply and the environment coming up read as one sequence.
- Run is the long-running process (app, server, watcher) started by the Run button, with a Stop control and the Workspace's preview Port.
- Archive runs before a Workspace is archived, for cleanup that lives outside the worktree.
Each Workspace is allocated its own block of Ports, so parallel Run scripts never fight over one address.
Scripts live in the Repository's committed .cohalen/settings.toml, which
every worktree checks out. That makes the workflow a team asset: a teammate
who launches a Workspace on the same Repository inherits the same Setup and
Run without copying anything. A Workspace can also carry its own edits to
the file in its worktree, scoped to that Workspace alone.
Where a setting comes from
Settings resolve through fixed layers, each overriding the one below it, key by key:
- Built-in defaults
- User config, global to your machine
- The Repository's committed
.cohalen/settings.toml, shared with the team .cohalen/settings.local.toml, an uncommitted personal per-repo override- Cohalen-managed config kept outside any worktree (the Sandbox profile lives here)
The Settings surface shows each value with its source, so "this is the default" and "this is overridden by the repo" stay distinguishable. Secrets never ride a layer: API keys live in the OS keychain only.
Next: The sandbox, the boundary each agent runs inside.