Reference
Changelog
Updated 2026-10-10
2026-10-10
- Support by email (CLI 0.61). Write in Support on /c, run
ghosty support openor ask your agent ("report it to support"): a case opens with your account and your agents' recent errors, and we answer by email. Replying to the email adds to the case; if it was resolved, it reopens.ghosty support ls|show|replylists and follows them. See . - Archive an agent (CLI 0.60).
ghosty agents archive <id>or the archive icon in Agents: it stops answering on every channel (Teams is paused with its @handle kept, personal WhatsApp disconnects without logging out) and leaves the lists. Nothing is deleted for 7 days:ghosty agents restore <id>or Archived → restore brings it back as it was. After that it is deleted automatically.ghosty agents ls --archivedlists them with their date. - When an agent is deleted, its WhatsApp Business numbers and Messenger pages become reserved: the connection is kept, they don't answer, and in Channels of any agent in the workspace they show in amber ("Reserved, no agent") so you can turn them on there without reconnecting anything.
2026-10-09
- Archive a workspace from the terminal (CLI 0.59).
ghosty spaces archive <workspace>does what Settings → Archive does: the workspace leaves/appandghosty spaces ls, its agents and data stay. It shows the plan first (--dry-run) and asks you to type the slug;ghosty spaces restore <workspace>brings it back. Owner or staff; logged. API:POST /api/v2/workspaces/:slug/archive. See .
2026-10-08
- Real per-channel permissions. Every platform tool declares who it serves (team or customers) and in which channels. What the agent is told it has, what its tool list shows and what it can run now come from the same rule: in WhatsApp Business, Messenger, the widget or a customer group it no longer sees editing its own identity, its rules, the full board or your personal accounts, instead of seeing them and getting rejected. Turning a tool off in a channel (
--tool channel:tool=off) only removes; a team tool is never opened to customers. In the agent page, Connectors has a per-channel switch on each connector.
2026-10-07
- Factory: your workspace CI box behaves like
ubuntu-latest. Withruns-on: [self-hosted, ws-<your-workspace>]every job runs on a fresh box with Ubuntu 24.04,sudo, Docker (services:,container:,docker build, Compose), Python, Playwright and stopped databases.actions/cache, thecache:option ofsetup-*and Buildxtype=ghastore next to the box, scoped per repo and branch; Docker Hub images come from a local mirror. Add8gfor an 8 GB box. See . - Factory: CI is graded by what it runs. "Agent ready" flags CI as incomplete when it skips the typecheck, lint, test or build scripts in
package.json, and "Prepare repo" completes your existing workflow instead of adding another one. - Factory: slots per plan. F1 comes with 2 execution slots and 1 CI: runs and previews of PRs without a run (the "Start preview" button) share them. If every slot is a run in progress, new work shows "Waiting for a slot" on the card, the sprint and Tasks, and starts on its own.
- Factory: a box per run. From the moment you sign the plan, the run has its own computer:
@buildbuilds there,@checktests a clean clone of the PR and the preview runs there; it's deleted when the run closes. If your plan already has all its runs in progress, the new one waits and starts on its own. See . - Factory: per-repo test environment. A
setup:block in.ghosty/factory.md(services, test database, test variables, script) prepares the@buildand@checkwork box before every run, with an empty database. If it's missing and needed,@planproposes it from your CI. See . - Factory: warns when a role gets stuck and says why a run failed. While
@plan,@buildor@checkwork, a command running 8+ min, the same command repeated, errors in a row, going back and forth orapt installin a box leave a ⏳ in the thread and the role is told what to check; from the second one, a push to whoever asked. When an unhealthy run closes, a 🩺 with what happened, the critical step and what to change.ghosty factory runs why <run>(CLI 0.56) and stuck patterns inruns show --timing. See .
2026-10-06
- Factory: where a run's time and money went (CLI 0.55).
ghosty factory runs show <run> --timingshows each turn of each role with minutes, model and USD, the clock split into working / waiting for a person / other, and the commands that took 60 s or more.ghosty factory runs statsgives runs, % merged, median to PR and to merge, loops, red CI and cost per merged PR;runs lsadds time and cost. API:GET …/factory/runs/:id/timingandGET …/factory/stats. See . - Run the board and read the audit log from the terminal (CLI 0.50).
ghosty cards pause|resume|reply <agent> <card>does what the thread's pause menu and "Ask for a reply" do;ghosty cards pending <agent> [--since] [--reply]lists conversations waiting for an answer and flags the ones that must not be answered (paused, escalated, outside the 24 h window, only a reaction).channels whatsapp integrationstells who answered each number last (--orphans: those left without an agent) andchannels messenger lsdoes the same for pages.agents set --prompt-patch/--prompt-appendchange one piece of the prompt on the server's copy.ghosty audit lsreads the audit log; the agent page's Save and channel changes are logged now.ghosty factory runs ls|show|renameandagents ls --handlefor the factory. See . - Download your databases and files. In
/app/datos?tab=dbs, every database has .sqlite (the whole database, for sqlite3, DB Browser or DBeaver) and table.csv (the table you're looking at, opens in Excel). From the terminal:ghosty dbs export <agent> <db> [--table T]andghosty me files export --out folder/, which downloads every file in the account intodocuments/,conversations/andlibrary/(rerunning only brings what's new). API:GET …/dbs/:db/exportandGET /api/v2/me/files?all=1. CLI 0.49.
2026-10-05
- Factory: plan critic. Before building,
@checkreviews each plan in a separate conversation (sprint tickets too). If it asks for changes they go back to@plan; you can sign without waiting. - Factory: escalations in plain sight. When
@checkstops a request, the card shows what needs deciding at the top and approving takes a second click. A "✅" in the thread replies with that card: everything is decided with clicks. - Factory: CI completion wakes the factory right away (it used to poll every 2 min).
@buildno longer waits for CI. - Per-role rules in
.ghosty/factory.md:## @checksections (and## @plan,## @build). See . - Factory roles from the CLI:
ghosty agents teams on <id> <workspace> --factory plan,build,check(orPOST /api/v2/agents/:id/teamswithfactory) gives those roles to an agent;agents teams lsshows the roles it holds. CLI 0.48. @checkon Opus 5.5: like@plan, when its agent is a Claude one and nobody asks for another model.- Agent memory: the rules your team teaches an agent ("from now on…", "always…") live in its page → Memory, where you can see, edit or delete them. Each one applies to all its channels or to just one (WhatsApp, Messenger, a group). The agent saves them with
agent_note_saveand follows them in every conversation, customers included; a customer can never add one. They are separate from your personal Memories.
2026-10-03
- Agent email on every channel, with attachments:
enviar_correoattaches account files (archivo:<id>), sends up to 5 copies, replies go to the owner by default, and there is a cap of 50 a day per agent. From customer channels it still only goes to the address of the person writing, unless the owner opens it (Advanced orPATCH /api/v2/agents/:idwithemail.anyFromClients). See . - GitHub, Calendly, Deník, Sentry and Odoo in your chat and the app: they show up in Connectors; you connect them in Teams and your personal agent uses them with your account (not from customer channels).
- Account-level connections: GitHub, Calendly, Deník, Sentry and Odoo are no longer connected workspace by workspace in Teams; connect them once and they show up in all your workspaces. Sharing with the team is still per workspace.
- The factory resolves a conflicted PR by merging the main branch (
github_push_fileswithmergeFrom). - Google Drive in Teams: what you connect in Studio (Connectors) now shows up in Teams Settings → Integrations, and the agent uses it with the account of whoever is talking to it. If you paste a private sheet link without having connected it, the agent gives you a one-click link to connect.
/app/connectors?connect=<id>starts a connector directly (used by Teams and by the agent's links).
2026-10-01
- Past conversations: in your personal chat the agent can search your other conversations (
chats_search), list recent ones (chats_recent) and read one (chats_read) when you ask «remember when we talked about…?». It sees your chats with any of your agents and, if you own the agent, your WhatsApp and Messenger customers. Never tests, demos or other people's threads, and never from a customer channel. - Memories: what your agents remember about you (preferences, stable facts) across your personal chats, never in WhatsApp, Messenger or demos. The agent saves them with
memory_savewhen you ask; you see and edit them withghosty me memoriesorGET/POST /api/v2/me/memories. - Long thread: the history returns
largo: trueonce a chat re-reads a lot on every message (or was already compacted).POST …/conversations/:id/continueopens a new linked chat (continuesFrom) that starts with the end of the previous one. - The history (
?archivos=1) places each file withafterIndex(which message it follows) and no longer returns deliveries older than the requested tail. - CLI 0.32:
ghosty me memories ls|add|edit|rm. - CLI 0.31:
spaces ls(and, for staff,spaces join|leaveandspaces set --combo);channels whatsapp history --list --only-ads --columnandlink --ads-onlyto bring only ad leads;boards createwarns when the workspace has no Sales; the new-version notice checks every hour. - CLI 0.30: support for staff without scripts —
conversations ls --user,conversations show --why(who sees a thread and why),turns stats,push logand the Android app'snovedades. For everyone:conversations archive|rmcleans an agent's history,agents docs dedupemerges duplicated documents,me files ls --qsearches your files andchat --fileattaches them. - CLI 0.29:
ghosty turns cancelstops the turn and also what the agent left running in the background in that conversation.tryandchattake--media(photos, PDF) as from the app.agents ls --engine --idsto operate in bulk;agents box --recyclealso renews the box of Ghosty · Lite and Goose;agents set --prompt-mode replace.
2026-09-30
- CLI 0.28:
ghosty demos try(try a demo as a visitor, also across boxes) anddemos history(staff).turns lssays whether a Claude turn resumed the conversation or started from scratch. Partners:credentials create --env-file/--format env,agent apply --prompt-file,try --verboseand theGHOSTY_PARTNER_KEY_SECRETvariable. - CLI 0.27:
schedule add --teams workspace#room/thread: the agent answers in that Teams thread at the time you set. - Versioned documents: replacing uploads a new version of the SAME document (keeps its name, access and the agents that use it) and the previous one stays in the history. CLI:
ghosty agents docs replace|history|restore; API:…/documents/:doc/versions. - CLI 0.26:
ghosty bags(monthly or one-time token bags),ghosty spaces renew|rename,ghosty usage --workspace(turns and tokens per agent and day) andturns ls --workspace --quota-hits(messages left unanswered for lack of balance, Teams too). ghosty engines ls: the valid engines and models; a model that doesn't exist is rejected with the list.agents set --tool channel:tool=on|off,--avatarand--bag;agents rm --from-workspaceturns it off in Teams before deleting it.dbs importasks you to type the database name when a replace leaves a table empty or removes more than half of it.
2026-09-28
- documented:
@plan,@buildand@checkwork your repo from Teams while you sign the plan and the PR. - The verdict card shows risk (from what the PR touches), "Read first" with
file:linesand preview screenshots on desktop and mobile. - New "Pass first review" metric: how many PRs you approve without asking for changes, plus review time.
- in your repo (
docs/agents/+AGENTS.md): the roles read it and keep it current through PRs. - for
@plan,@buildand@checkwith a rubric per role, cost, and the optional@evaljudge. - Each reply's footer shows the model that ran that turn.
ghosty-factoryskill so your coding agent can prepare a repo for the factory:npx skills add https://ghosty.studio.
2026-09-23
- Switch engines:
PATCH /api/v2/agents/:idacceptsengine(optionalmodel). The agent keeps its identity, skills, knowledge, channels and permissions; conversation memory stays with the previous engine. - A new machine for an agent (after it is recycled) now starts with the skills and files you uploaded; before, it only got the identity.
- Google Drive connector: the agent reads the sheets, docs and CSVs you pick in Google's picker, and can append rows or update cells. It only sees what you pick. See .
2026-09-21
- Overridable system prompt:
PATCH /api/v2/agents/:idtakespromptMode(append|replace); withreplacethe agent is only your identity, without the Ghosty persona. The house persona now answers in the language it is written to (it used to force Spanish).
2026-09-16
- Docs for agents: every page exists as markdown at
<url>.md; "Copy markdown", "Open in Claude / ChatGPT" buttons and the MCP block; at/mcp/docs(search_docs,read_doc,list_docs,openapi); copyable prompts per guide; curl/TypeScript/Python tabs; "Try it" in the reference with your token. - Agent creator v2: Describe / Template / Blank, eight house , upload or download an agent's
.yamlrecipe. - Agent configuration API (
/api/v2/agents/:id): identity, model, files, skills and MCP servers with the agent's token.ghosty-agentskill for Claude Code/Cursor/Codex:npx skills add https://ghosty.studio. Guide: . - The web chat now delivers PDFs and documents to the agent (it used to fail with "could not deliver").
- WhatsApp per agent: on the agent card turn on the channel and tick which numbers (connected from Sales) it answers.
- Hand over an agent to another account with its configuration, memory and files (card → Avanzado).
- What the agent delivers (documents, images) is saved in your account files and shown on the web.
- Archived conversations no longer show in the list.
- This documentation is born: getting started, concepts, channels, connectors, protocols (ACP, A2A, MCP), API with OpenAPI 3.1, events, errors.
/docs/acpmoves to (redirects)./openapi.yamland/llms.txtavailable.
2026-09-14
- Correct mid-turn: writing to the agent while it works enters the running turn instead of waiting for it to finish (Teams and API).
- The stream batches tokens on mobile so as not to saturate the UI.
2026-09-11
- Scheduled turns: the agent can work for days without anyone connected (
POST …/schedule).
2026-09-09
- Connectors in the mobile app: EasyBits as the first live connector.
2026-09-02
- An ACP agent comes back up on its own if its machine disappeared: transparent
revivebefore the first message.
2026-08-27
- Attachments are delivered as access to the file: the agent reads it with its tools instead of receiving an inline copy.
2026-08-26
ghosty-acppublished on npm (MIT, zero dependencies).