All three edit the same project source and deploy to the same platform, so you can move between them freely — start something in the app, refine it from your editor, or vice versa.
Start a chat
Open New chat in the sidebar, or use the chat dock at the bottom of the workspace. Each chat session is bound to one project in your active organization — to work on a different project, start a chat there. Describe the outcome you want rather than choosing a primitive up front, the same way you would prompt a coding agent:How it works
Behind the chat, the platform agent works in a hosted session with thekeystroke CLI and a checkout of your project’s managed Git repository — the same source a coding agent edits locally.
- It edits the shared draft. Every project repository has two branches:
mainholds the deployed, live state, andks/draftis the shared work-in-progress draft. The platform agent commits and pushes toks/draft. Teammates and their sessions share the same draft. - The web app renders the deployed state. Workflow canvases, agent pages, and run history show what’s live. Draft edits appear in the project’s Repository tab (which tracks the draft in real time) until they’re deployed.
- Deploying promotes the draft. When the agent runs
keystroke deploy, the draft is built, health-checked, and promoted tomainand the live runtime. Until then, changes exist only on the draft. - It’s already authenticated. Sessions carry your project’s API credentials. The platform agent never asks you to log in and never runs
keystroke auth login.
Connect integrations from chat
When a build needs an app connection (Slack, Google, Linear, an API key), the platform agent shares a connect link. Opening it launches the in-app connect dialog, where you approve OAuth or enter the key and choose the scope. The agent then verifies the connection and continues. Secrets never pass through the chat — you enter them in the connect flow, and they’re stored as credentials like any other connection.Working alongside coding agents
The platform agent and coding agents are collaborators on the same project, not alternatives you must choose between once:- A coding agent working locally picks up platform-agent edits with
keystroke pull(which fetches the shared draft) and publishes its own work throughkeystroke deploy. - The platform agent sees local work as soon as it’s deployed or on the draft.
- Everything either one builds is ordinary TypeScript in the project — reviewable, testable, and maintainable by the other.
If you are an agent reading this in a hosted session
Reading this from inside a Keystroke-hosted session (the platform agent, or an MCP workspace)? The local-setup docs don’t apply to you:- You are already authenticated — never run
keystroke auth login, and skip install/keystroke init/projects linkbootstrap steps. - Your checkout is the shared draft (
ks/draft). Runkeystroke typecheckbefore committing, and push withgit push origin HEAD:ks/draft— a broken shared draft affects everyone. - You cannot open a browser. For app connections, run
keystroke connect <slug> --print-urland share the printed URL with the user. - Draft edits are not live until
keystroke deploypromotes them — say so when you finish without deploying.
Next steps
CLI for agents
The local editor path: headless CLI, JSON output, deploy-first loop.
MCP for agents
Build from ChatGPT, Claude, or any MCP client in a hosted workspace.
Deploy a project
The draft/main model and what deploy actually does.
Connect credentials
Connect apps, API keys, and OAuth accounts.