07 / Reference

Command line

enowx-app (the desktop app’s binary, linked by that name: enowx is another app’s) and enowxd (the server daemon’s) take the same commands, which talk to the daemon of the host they run on (cli/). The app or enowxd serve must be running there; the command line doesn’t start a daemon itself.

CommandWhat it does
ls [--json]The sessions on the host: ID, agent, state, project, branch, name.
sessions, peek SESSION [--host H] [--last N]Only when the user asks (to copy a feature from another project, say): the sessions of every host the app reaches, and one’s last messages and project folder, read live from its host through the app, a line that looks like a secret taken out; its code then with project context P --host H and project read P FILE --host H. MCP: sessions_everywhere, session_peek (Settings → Features, Other sessions).
status [SESSION]What a session’s program is doing: working, waiting (asks the user), done, idle, queued or exited(code). Without a session, as ls.
spawn [flags] [PROMPT]Starts an agent and prints its session’s ID. --agent ID (default claude; agents lists them), --agents A,B to give the prompt to several agents, each on --branch with its name after it (a fan-out, printing each session’s ID), --project DIR (default: the project of the session it runs in, else the current folder, added to the host’s projects), --branch NAME for a new branch in a worktree of its own (--base to start it from), --on BRANCH for one that exists, --name, --config NAME for one of the agent’s configs, “official” for the agent as installed (configs.md), --account NAME for one of its other accounts (accounts.md), --model ID and --effort LEVEL to start it on a model and effort of its own (decide route suggests them), --yolo to skip permission prompts, --tab for a tab of the session it runs in, --json to print the session.
read SESSIONPrints what the session’s screen shows (session.screen).
browser [--session S] open URL|snapshot|click REF|fill REF TEXT|screenshot FILE|back|forward|reload|eval JS|capture on|offDrives the session’s Browser in the app: loads a page, prints it as text with its controls numbered, clicks or fills one, saves a PNG, goes back, forward or reloads, runs JavaScript in the page and prints its value, sends its previews through Traffic or not (preview.md).
ports [--session S] [preview PORT]The ports the session listens on (session.ports); preview shows one in its Browser.
run [--session S] [N|NAME|COMMAND]The project’s commands, as the Run menu lists them (commands.list), or runs one in a new tab of the session (commands.run); --save NAME COMMAND saves one, --forget N|NAME forgets it.
wait SESSION [--timeout 30m]Returns once the session’s agent is done or waiting, or has exited, printing which. An agent without hooks counts as done once its screen is quiet for 3 seconds.
note SESSION [TEXT...]Sets what the session is at, shown under it in the app and in ls (session.note, kept across restarts); no text clears it. Agents are told to say so at milestones.
kill SESSION --yes, close SESSION --yesEnds the session; --yes for a session, not a tab of one. From an agent the user says yes in the app (Control).
hibernate SESSION... [--idle] [--when-done] [--force] [--dry-run], hibernate SESSION --auto off|on, wake SESSIONStop sessions’ agents to free the host, to wake later on their conversation; one that would lose work is only planned unless forced or once done; keep one from hibernating on its own (agents.md).
hooks [list [--json] | events | add FLAGS | edit ID FLAGS | rm ID | on ID | off ID | test ID | log [--last N]]What runs when something happens in a session, on every agent (hooks.md): the host’s, the projects’ and the sessions’ own, the project files and proposals waiting; added or changed with a flag per field (--event, --do run|context|refuse|rewrite|judge|trim|notify|webhook|enowx, --command, --tool, --files, --branch, --any, --not, --once, --every, --hours, --schedule, --scope host|project|session, …), tested on a sample event, their latest runs. From a session, a change is a proposal the user allows in Settings → Hooks. MCP: hooks_list, hooks_add, hooks_edit, hooks_remove, hooks_test, hooks_log.
decide [status | test [JUDGE] | log [--use USE] [--last N] | mark ID [--right] | ask USE --command CMD | trim -- COMMAND | route [--agent A] [--json] PROMPT]enowX’s judge (decide.md): its policy, uses and judges; testing a judge; the latest decisions and why; marking one wrong; trim runs a command, its long output cut to what matters, its exit code kept; route says which model and effort of the agent suit a prompt. MCP: decide_status, decide_log, decide_route.
rag [search QUERY | remember TEXT | memories | forget ID | status | index] [--k N] [--scope code,docs,notes,memory] [--project DIR]The project found by meaning (rag.md): file:line, symbol and the part found; a decision kept as a memory; the index and reindexing it. A session reaches its own project; elsewhere, the current folder or --project. MCP: rag_search, rag_remember, rag_status.
usage [--by agent|model|project|session|config|host] [--since 7d] [--host H] [--json] | usage session [SESSION] | usage budgets | usage coverageThe tokens agents used (tokens.md): totals, each day, split as asked, with costs (subscriptions’ API-equivalent) and budgets near their limit; --host another host’s synced daily totals, --by host every host’s; a session’s by model; each budget’s use; each agent’s tracking layer. MCP: usage_summary, usage_session.
agents [--all]The agents installed on the host (--all: every preset).
project list | add PATH | clone URL | status ID | cancel IDThe host’s projects; a folder made one; a repository cloned on the host with its git credentials into --dir (default: here), --name (default: the repository’s), --branch, --depth N, --submodules, as a new project, showing git’s progress until it ends (--no-wait prints its ID for status ID --wait); a clone stopped, its folder removed. A failure says what to do: a key to add, gh auth login, a wrong address (project.clone, project.clone.status, project.clone.cancel, project.clones).
project rules [P] [--set TEXT|-] [--editors members|admins]A project’s rules, which every session in it reads first: the user’s own for their projects (synced with their settings), the team’s for a team’s project; --set replaces them, --editors says who edits a team’s project’s (its admins).
project copy P --to HOST | links P | origin P | sync P | conflicts P | autopush P | history PA project’s copies on other hosts and its auto pushes (transfer.md); P is its folder, its name, or .. copy makes one on a host of the app’s list (--path, --env), linked to this one; links and origin say where it came from and went, how each copy syncs and how it went; sync sets a copy’s sync on its own (--to HOST picks it, --on/--off, --interval 5m or --realtime, --direction one-way|two-way|reverse, --include, --exclude, --deletes mirror|never, --bandwidth KBS) and syncs it --now; conflicts lists files changed on both copies; autopush shows or sets its auto pushes (--on/--off, --interval, --branch, --remote, --pr) and pushes --now; history lists what syncs and pushes did. copy and sync --now need the app open, which alone reaches both hosts (project.copy.request, projectlink.sync.now, sent to the app as app.request).
projects [group PATH GROUP | move PATH [--before P] | move-group GROUP [--before P] | rename-group FROM TO]The host’s projects, in the user’s order, a project’s group after a tab; or arranges them as dragging them in the session list does (project.arrange, project.group.move, project.group.rename).
shells [use PATH | login]The host’s shells, the one its terminals start with marked *; use picks it (login: the login shell).
notes [show NOTE | new TITLE | write NOTE | move NOTE | rm NOTE]The user’s notes on the host, as a tree, then each team’s space’s under its name; a note’s Markdown; a new one (--parent, --group, --team T in a team’s space, by name or ID, --icon lib:name or --icon-svg FILE, --body TEXT or - for stdin); changed (--body replaces, --append adds, --title, --icon); moved (--parent, --top, --before, or --group G into a group); deleted with those under it. `notes space NOTE —to TEAM
notes attach NOTE --project P [--host H] | detach NOTE (--project P | --all) | projects NOTE | --project P, project context P | read P FILENotes attached to projects of any host (by Git remote, else host and folder); a project’s notes (. for the session’s); its context and files, read-only, through the app from another host (notes.md).
notes ask NOTE PROMPT [--agent A] [--new] [--wait], notes chat NOTE, notes agent NOTE [--use A], notes proposals, notes accept ID, notes reject IDA note’s agent in the Notes page: ask it, read what was said (on any host), pick it; the changes agents proposed, and settling one (notes.md).
sync [status | now | hosts | conflicts | resolve ID --keep HOST|N|both | trash | restore ID | forget --yes]How the user’s data (notes, canvases, settings, vault) is synced between hosts; ask the app to sync now; settle conflicts; restore what was deleted (user-data-sync.md).
features [list | on NAME | off NAME | reset NAME | lazy on|off | preset P] [--global|--host|--project P|--session]Which features agents are told of and get tools for; from a session, on asks the user (features.md). help NAME prints a feature’s guide.
notify [status | sound [done|input|error] [--text T] | set … | mute ID | unmute ID]The sounds the user’s enowX app plays when agents finish, ask or fail: how they are set, one played now on the user’s computer from any host, or changed (--on/--off, --volume 0-100, --sound KIND=NAME, --quiet 22:00-07:00|off, --watched, --banner, --badge on|off); an agent or a session muted (settings.md).
cloud [status | whoami | url URL|off | login [--name N] | logout | devices | approve CODE | recovery new|use KEY]The host’s sign-in to a team cloud (cloud.md): its address (off by default), signing in with a code approved in a browser, the app, or cloud approve on a host signed in, which waits until it is; the account’s devices; the account’s recovery key, made and shown once, or used on a new device to get the teams’ keys back. The token and the device’s key stay on the host, in ~/.enowx-app/cloud/, its user’s alone.
team [list | create NAME | members TEAM | invite TEAM [--role R] [--email E] | invites TEAM | join LINK|TOKEN | role TEAM MEMBER ROLE | remove TEAM MEMBER | leave TEAM | sync [TEAM]]The account’s teams in the cloud, TEAM by name or ID and MEMBER by GitHub login, as the host’s device; sync syncs a team’s space (its notes and canvases) with the cloud now; projects [TEAM] lists the teams’ projects and where each is on the host, project add TEAM LINK [--name N] and project rm TEAM PROJECT change them (admins), project clone TEAM PROJECT [--dir D] clones one here unless it is here already; audit TEAM prints the team’s log (admins); chat TEAM [--last N] reads the team’s chat and chat TEAM --send TEXT writes in it; hosts lists the hosts the teams’ members share, share [TEAM [PROJECT…]] shares this host’s projects with a team (none unshares); kit [TEAM], `kit add TEAM skill
icons [search QUERY [--lib L] [--limit N] | libs]The SVG icons notes and groups take, found by name and keyword: lib:name each, best first, with its keywords; needs no daemon.
notes import FILE|DIR [--from F] [--group G] [--project P] [--mode M] [--rows-as-notes] [--dry-run] [--no-wait]Notes from other apps: a Notion export, an Obsidian vault or folder of Markdown, .md/.txt, Evernote’s .enex, Keep’s Takeout, HTML, an enowX export or backup (--from notion|obsidian|md|enex|keep|html|enowx, found out when left out); --dry-run lists what it would make; notes imported before are skipped, or --mode overwrite / duplicate. --from notion-api [--token-env VAR] imports every page a Notion integration sees, its token read from $VAR (NOTION_TOKEN). Waits, showing its progress, then says what it made, skipped and couldn’t convert.
notes import-status [ID] [--wait], notes import-cancel IDHow an import goes (none: the imports lately); stop one, the notes it made taken back.
notes export [NOTE] [--group G | --all] [--format md|zip|html|pdf|json] [--out PATH]Notes as a file on the host (in the current folder by default): md one note’s Markdown, zip folders of Markdown with their images (Obsidian, Notion), html, pdf, json a full backup notes import restores.
canvas list | new TITLE | open | show | write | patch | shape | remove | frame | screenshot | export | comments | comment | resolve | history | undo | redo | restore | asset | rm | guide | designs | new-design | design | goto | compare | pick | favorite | move-design | rm-design | grid | icon | chat | chat-historyThe host’s canvases, which the user watches built live in the Canvas page: a new one (--kind mockup|wireframe|diagram|board, --frame desktop|tablet|mobile|NAME:WxH); a frame’s HTML whole (write --html HTML|-) or an element at a time (patch --element E --html … [--into P], --text); shapes (shape --type rect|ellipse|diamond|text|sticky|line|arrow|image, --from/--to for arrows); a PNG to look at (screenshot FILE --frame mobile); exports (--format png|pdf|svg|html); comments, versions, images. A canvas holds many designs, numbered from 1: new-design --title T [--page P --variant V --from N], goto, compare N M, pick N. grid CANVAS --cols 12 --rows 8 --gap 24 --margin 48 --area NAME:COL,ROW,COLSPAN,ROWSPAN [--apply] gives a design its layout grid (shapes snap to it; prints its CSS), icon lucide:rocket an icon as inline SVG. chat CANVAS --prompt TEXT asks the agent beside the canvas, chat-history reads its conversation. canvas guide is how to design them (canvas.md).
creds [list | use [NAME...] -- CMD | env NAME... | add NAME --platform P | test NAME | rm NAME | login PLATFORM | audit | platforms]The user’s credential vault, by name: what it holds without values; a command run with a credential’s variables, its output masked; credentials lent to the session; one added, checked, removed (the user confirms in the app) or logged in to by the user; the host’s record of uses (vault.index, vault.ask, vault.attach, vault.audit). git and docker use creds git-helper and docker-credential-enowx as credential helpers (vault.md).
pipeline [--branch NAME] [--agents A,B,C] [--project DIR] [--yolo] TASKStarts a pipeline (plan, implement, review) on TASK, on a new branch named after it unless given, with the agents given per stage; prints its ID. See pipelines.md.
pipelinesThe host’s pipelines, each with its stages’ status and sessions.
attach SESSIONUses the session’s terminal in this one, following its size; Ctrl+] leaves it running.
traffic COMMANDThe HTTP traffic the host’s interceptor caught, and its rules: see below and traffic.md.
mcpServes the commands to an agent as MCP tools, on stdin and stdout, with the guide as its instructions: traffic_*, browser_*, android_* (status, start, run, logcat, screenshot, controls, tap, swipe, type, key, catch, connect), the sessions’ (sessions_list, session_spawn, session_wait, session_read, session_send, session_note), ports_list, run_list, run_command, the projects’ (projects_list, project_add, project_clone, project_clone_status, project_copy, project_links, project_origin, project_sync, project_conflicts, project_autopush, project_history), and enowx, which runs any command of this table. Screenshots come back as images (traffic.md).
android setupBrings the host a JDK, the Android SDK, an emulator and a virtual phone, the SDK’s licenses read and accepted in the terminal (android.md).
android status|start AVD|stop SERIALThe SDK, virtual phones and devices adb sees; starts a virtual phone; stops an emulator.
android logcat SERIAL [--package P] [--level W] [--follow]The device’s log, the app’s only with --package, at a level and above.
android run SERIAL [--command CMD] [--session S]Runs the session’s app on the device in a new tab of it, as the Android tool’s Run app does; read shows the tab.
android connect ADDRESS [--pair ADDRESS --code CODE]Connects a phone over Wi-Fi (Wireless debugging), pairing it the first time.
android catch [-s SERIAL] [--off]Sends the device’s HTTP through Traffic, as a source of the session, and has it trust the CA (android.md).
android screenshot [-s SERIAL] FILESaves the device’s screen as a PNG (android.screenshot).
android controls [-s SERIAL]What is on the device’s screen: its controls numbered, with their text, id, state and center (uiautomator’s view tree, android.controls).
android tap|longpress [-s SERIAL] REF|X Y, swipe X1 Y1 X2 Y2 [--ms N], type [--into REF] TEXT, key NAME|CODEInput, by adb’s input (android.act): a control by its number from the last controls, or a point; text typed into the field focused (ASCII); a key by name (back, home, recents, enter, delete, power, volume-up…) or code. -s names the device when more than one is online.
api [show|set|clear|restore AGENT]Points the host’s agents at a model API of the user’s, their settings backed up first (agent-api.md).
configs [list [--agent A]|add AGENT NAME …|edit AGENT NAME …|rm AGENT NAME]Agents’ configs: another account (--account), a key of the vault’s (--cred C) or a model API (--url URL --key-cred C --model SPEC…), with --effort, --env NAME=VALUE, --arg A, --color; edit changes the flags given, --name renames (configs.md).
api [show|set|clear|restore AGENT]Points the host’s agents at a model API of the user’s, their settings backed up first (agent-api.md).
guidePrints the guide agents are given: what enowX gives them in a session and how to use it (agents.md).

SESSION is a session’s ID, the start of one, its name, or self: the session the command runs in (ENOWX_SESSION).

Traffic

enowx-app traffic reads and drives the host’s interceptor (traffic.md). In a session, it keeps to that session’s traffic unless --all; secrets stay masked. F is the filter language (traffic.md).

CommandWhat it does
list [--filter F] [--all] [--limit N] [--json]Exchanges: number, status, method, host and path, type, size, time, notes.
show ID [--body request|response] [--json] [--as LANG]One exchange: headers, bodies decoded, messages; or one body whole; or its request as code that sends it again (curl, fetch, python, go, httpie, powershell).
watch [--filter F] [--until-match] [--timeout 1m] [--all] [--json]Prints exchanges as they finish; with --until-match, the first that matches, then exits.
mock [match] [--status N] [--body TEXT|--body-file F] [--header 'K: V'] [--times N] [--ws-message TEXT]... [--echo]Adds a mock to the project’s rules, first. Match: --method GET,POST, --host H, --path P (a glob with *), --query k=v, --header-match 'K: V', --body-match TEXT, --json-match a.b=v. Every rule also takes --name, --delay MS, --throttle BYTES/S, --project DIR.
breakpoint [match] [--stage request|response|both]Adds a breakpoint.
forward [match] --to ORIGIN [--keep-host], fail [match] --how 503|close|reset|timeout, pass [match]Adds a rule sending requests to another origin, failing them, or letting them through before later rules.
transform [match] [--req-set 'K: V'] [--req-remove K] [--req-url URL] [--res-set 'K: V'] [--res-remove K] [--res-status N] [--replace FROM=>TO] [--res-json a.b=VALUE]Adds a rule changing requests or their responses on the way (flags repeat).
settings, settings set [--insecure H,H] [--upstream URL] [--host NAME=ADDR]... [--client-cert 'HOST CERT KEY']... [--max-exchanges N] [--max-mb N] [--notify-errors on|off]The interceptor’s settings, or changed: what isn’t given stays (--clear-hosts, --clear-client-certs empty those).
ca [--pem] [--new], pin|unpin ID..., filters [add|rm F]The CA (made anew with --new); pins; the filters saved with the project.
rules [--json], rules rm|on|off ID, rules clearThe project’s rules.
paused, resume ID [--drop] [--status N] [--body TEXT]Exchanges held at breakpoints; let one go on, changed or dropped (resume with no ID records again after a pause).
send [-X METHOD] [-H 'K: V']... [-d BODY] [--direct] URLSends a request from the host, recorded, and shows it.
clear [--filter F], export [--filter F] [--out FILE], import FILEClears; exports HAR (stdout by default); imports HAR.
attach terminal|session|docker|manual [--agent], attach browser NAME, attach electron PATH, attach android [SERIAL], attach webview, attached, detach SOURCECatches more of the session’s traffic: a terminal, its tabs, containers, a browser, an Electron app (its executable or .app), a device (as android catch), the Browser tool’s previews; lists and detaches.
env [--off]The environment for a shell, as export lines: eval "$(enowx-app traffic env)".
statusThe interceptor’s port, its CA’s fingerprint, what it keeps, and whether it records, is paused (for what, since when, how many not recorded) or stopped.
pause [--source S]... [--filter F] [--rules keep|pause] [--drop], resume, stop [--drop], startStops recording while traffic still flows (only some sources: an ID, a kind such as browser or terminal, a session; or what a filter matches; rules keep running unless --rules pause), records again, catches nothing at all (programs pointed at it go through untouched), catches again. Requests held at breakpoints go on, or with --drop are dropped. watch says when recording is paused.
prefs [--rules keep|pause] [--breakpoints release|drop] [--auto-minutes N] [--auto-count N]The defaults for pausing, the user’s on every host: rules while paused, held requests, pausing on its own after N minutes of recording or N exchanges.

Agents starting agents

Sessions have the binary as $ENOWX_BIN, so an agent can start others and follow them. Every agent is told so in its guide (agents.md):

id=$("$ENOWX_BIN" spawn --agent codex --branch fix/parser "Fix the parser's handling of ...")
"$ENOWX_BIN" wait "$id"
"$ENOWX_BIN" read "$id"

The sessions it starts show in the app like any other.

Control

A session controls sessions and settings of any host the app reaches, with the same commands: --host H (a host as the app names it, sessions lists them, or its daemon’s ID) sends each call to host H through this host’s daemon and the app (host.call); without it, this host. Other hosts need the app open, which alone reaches them; this host answers without it. With --host, paths are that host’s, given whole, and spawn needs --project. It works on ls, status, spawn, send, read, wait, hibernate, wake, agents, projects, project list|add|clone|status|cancel|rules|settings, settings and the commands below. Every request is checked twice, by the asking host’s daemon and by the app, against the methods control reaches (core/hostcontrol): nothing of the vault, hooks, the cloud’s sign-in or the daemon’s life; on a teammate’s shared host, a viewer reads and a member changes, which that host checks again. Each is logged on the asking host (control log, and its daemon’s log). See goa-tools.md for every feature and the command that reaches it.

CommandWhat it does
interrupt SESSIONStops what its agent is doing with the agent’s own key (Escape, else Ctrl+C) (session.interrupt).
stop SESSIONEnds its agent now, even mid-work, keeping the session (hibernate --force); continue brings it back on its conversation.
continue SESSIONStarts an ended session’s program again (session.continue), or wakes a hibernated one.
rename SESSION NAMERenames it (session.rename).
close SESSION --yesEnds it, its tabs and what runs in them (session.kill); kill is the same. A tab of a session needs no --yes.
chat SESSION [--last N]Its last messages, as its agent recorded them, a line that looks like a secret taken out.
answer SESSION [allow|always|deny|N]What its agent waits for (a tool it asks to use and what it would do, or its questions) and the answers it takes (session.ask), or answers it with the agent’s own keys (session.answer), as the chat does.
switch SESSION [--model M] [--effort E] [--mode M] [--account A]Changes its model and effort (the agent’s own command typed in), its permission mode (session.mode) or its account (account.switch), as the chat does.
changes SESSION [status | diff [--files] | commit -m MSG | push --yes | pr [--title T] [--body B] --yes | merge --yes | discard [--delete-branch] --yes] [--base B]Its branch against its base and what it changed; committing, pushing, opening a pull request, merging, discarding its worktree (review.md).
settings [show | set KEY VALUE | env [set NAME VALUE | unset NAME] | app [set KEY VALUE]]The host’s settings (max-agents, hibernate-after, auto-hibernate, shell), the variables every session gets (masked), and the app’s own (New session’s agent, folder, skipping permissions and time budget, the terminals’ font and size, theme, mode and accent, desktop banners, port cards, stopping agents on quit, the editor) through app.settings, which the app attached answers.
project settings [P] [--copy A,B] [--setup SCRIPT]A project’s .enowx.toml (project-settings.md): what new worktrees get, and their setup script (project.config, project.config.save). Its comments don’t survive a change.
control logThe requests sessions made through control on the host: when, from which session, to which host, the method, its level and how it ended (host.controlLog).

What can’t be undone (closing a session, pushing, opening a pull request, merging, discarding a worktree, setting a session variable, removing a project) takes --yes on the command line and yes in its MCP tool, so that an agent doesn’t do it by accident; asked from an agent’s session, the user also says yes in the app, which shows what is asked and by which session, whatever host it is on. With no app open, those wait for it: “needs the user’s yes in the enowX app”. --yes and the app’s question guard against accidents, not against a program that talks to the daemon’s socket itself.

MCP: session_interrupt, session_stop, session_continue, session_rename, session_close, session_chat, session_ask, session_answer, session_switch, session_changes, session_commit, session_push, session_pr, session_merge, session_discard, host_settings, host_env, app_settings, project_settings, control_log (Settings → Features, Control), each with host; sessions_list, session_spawn (with project, name, model, effort), session_wait, session_read, session_send, session_hibernate, session_wake, projects_list, project_add, project_clone, project_clone_status, project_rules and project_rules_set take host too.

GOD of Agents

GOA’s commands (goa.md): a session handing tasks to others, on any host, with the model and effort the judge picks.

CommandWhat it does
goa delegate [--session S | --agent A --project P [--branch B]] [--host H] [--model M] [--effort E] [--config C] [--no-route] [--title T] [--yolo] PROMPTHands a task to a session (goa.delegate): an existing one, its model and effort switched first, or a new one opened in P (added as a project). The judge’s route picks the model and effort (a step cheaper near a token budget) unless given; prints the task, its model, effort and why.
goa board [--json]The tasks, each with its session and host, model and effort and why, status (working, waiting, done, failed, stopped), result, what it asks and whether that is the user’s.
goa task ID [--status S] [--result TEXT]Settles a task, or says where it stands.
goa remember [--kind task|delegation|outcome|decision|preference] TEXTKeeps it in GOA’s own RAG collection, never a project’s.
goa recall QUERY [--project P [--host H]]...Searches GOA’s collection (by meaning once indexed, else by words), and projects’ read-only.
goa agentsThe agents GOA can run on and how far each holds it: enforced, limited, watched.
goa flagsWhat a watched GOA did itself: programs it ran, files it changed in projects.
goa start [--agent A]Starts GOA on this host (the app’s GOD of Agents does the same).

MCP: goa_board, goa_delegate, goa_task, goa_remember, goa_recall, goa_agents (Settings → Features, GOD of Agents; always on in GOA’s session).

Edit this page on GitHub