CLI reference
The tares package installs three entry points: tares, with the subcommands below, taresd and
tares-mcp.
| command | purpose |
|---|---|
tares up | start the daemon and console |
tares mcp | run the MCP server (for remote agents and the factory crew) |
tares login | connect this machine to a Tares Cloud workspace |
tares logout | remove this machine’s key and forget the login |
tares status | readiness checklist and the next step |
tares factory | run the software factory crew |
taresd | the daemon, configured by environment only |
tares-mcp | the stdio MCP proxy (spawned by an agent client) |
tares up
Starts taresd with a persistent data home and prints the console URL.
tares up [--host HOST] [--port PORT] [--data-dir DIR] [--open] [--auth[=TOKEN]]| flag | default | description |
|---|---|---|
--host | 127.0.0.1 | bind address; 0.0.0.0 to expose on the network |
--port | 8787 | bind port |
--data-dir | ~/.tares | directory for the DuckDB file and catalog |
--open | off | open the console in a browser |
--auth[=TOKEN] | off | require a login. Bare --auth generates and persists a root token (printed as a …/?token=… login URL each launch); --auth=TOKEN uses your own. Omit for an open instance. See Authentication. |
tares up sets TARES_DB and TARES_CATALOG under --data-dir unless they are already set
in the environment. --auth exports TARES_AUTH_TOKEN, so setting that variable is equivalent.
tares mcp
Runs the MCP server, a network endpoint for remote agents (streamable-http is the default).
For a client that spawns the server itself over stdio, use tares-mcp instead.
tares mcp [--transport {stdio,sse,streamable-http}] [--host HOST] [--port PORT] [--taresd URL]| flag | default | description |
|---|---|---|
--transport | streamable-http | stdio, sse, or streamable-http |
--host | 127.0.0.1 | bind address (HTTP transports) |
--port | 8788 | bind port (HTTP transports) |
--taresd | http://127.0.0.1:8787 | the daemon URL to proxy to |
tares mcp --transport streamable-http --host 0.0.0.0 --port 8788 --taresd http://localhost:8787
# serves http://<host>:8788/mcptares login
Connects this machine to one of your Tares Cloud workspaces. Requires Tares 1.45.0 or later.
tares login [--cloud URL] [--no-browser]| flag | default | description |
|---|---|---|
--cloud | $TARES_CLOUD_URL, else https://console.tares-glassflow.com | the Tares Cloud console to sign in at |
--no-browser | off | print the address to open instead of opening it |
Your browser opens the console’s Connect a terminal page. Sign in if needed, pick a workspace
on Tares 1.44.0 or later, and choose Connect. The workspace makes an admin key for this
machine, named cli: <machine> (<your email>) under Settings > Access and API keys, and hands
it back to the CLI over 127.0.0.1 with a one-time code. The CLI saves the workspace and the key in
~/.tares/login.json, readable only by you.
tares status, tares factory and the Claude Code plugin then use that workspace. Every command
finds its Tares in the same order:
- a flag, such as
--taresd TARESD_URLandTARES_AUTH_TOKEN- the workspace
tares loginsaved - the local Tares at
http://127.0.0.1:8787
So on a machine that is signed in, set TARESD_URL=http://127.0.0.1:8787 (or run
tares logout) to work against a local tares up instead.
Running tares login again replaces the saved workspace and removes the previous key. The key is
only ever sent to its own workspace and the console.
tares logout
tares logoutRemoves this machine’s key from the workspace and deletes ~/.tares/login.json. Your browser
sessions and other machines are not affected. If the workspace cannot be reached, the file is
still deleted and the command says where to remove the key by hand.
tares status
tares status [--taresd URL] [--data-dir DIR] [--json]Asks the running daemon (--taresd, TARESD_URL, the workspace tares login saved, or
http://127.0.0.1:8787, in that order) and prints one line per
check: daemon, auth, sources configured and receiving, projects, triggers, Tares agents and whether an
Anthropic key is set, the MCP endpoint, which agent clients on this machine have Tares registered
(Claude Code, Cursor, Codex; read-only), Slack. The last line is the one thing to do next.
--json prints the same as a stable object. Exit code 1 when nothing answers. When auth is on, the
root token is read from --data-dir (or TARES_AUTH_TOKEN). Signed in with tares login, the
first line says which workspace.
tares factory
Runs the software factory: one crew of Claude Code sessions
on this machine that builds every project you hand it. tares factory help lists every subcommand.
tares factory crew up # start the crew and the watch; the first run asks the settings
tares factory spec "<idea>" # plan a project and hand it to the crew
tares factory session <project> # work on a project in your own session (or "<idea>" to plan and build one)
tares factory crew attach orchestrator
tares factory doctor # check everything the crew needsThe full list is in Commands. On Tares Cloud,
tares login is all it needs. It reads:
| variable | default | description |
|---|---|---|
TARESD_URL | the workspace tares login saved, else http://127.0.0.1:8787 | the Tares the crew uses |
TARES_AUTH_TOKEN | the saved login’s key, else unset | an admin key or the root token, when auth is on |
TARES_FACTORY_MCP_URL | http://127.0.0.1:8788/mcp for a local Tares, else TARESD_URL plus /mcp | the MCP endpoint every crew session shares |
FACTORY_CREW_HOME | ~/factory | the crew’s own folder |
taresd
The daemon itself, with no CLI flags, configured entirely by environment variables (see
Configuration). tares up is a thin wrapper over this.
TARES_DB=/data/tares.duckdb TARES_HOST=0.0.0.0 TARES_PORT=8787 taresdtares-mcp
The stdio MCP proxy, the entry point an agent client (Claude Code, Claude Desktop) spawns. It reads:
| variable | default | description |
|---|---|---|
TARESD_URL | http://127.0.0.1:8787 | the daemon to proxy to |
TARES_AUTH_TOKEN | unset | bearer token, if the daemon requires one |
TARES_MCP_TRANSPORT | stdio | stdio, sse, or streamable-http |
See Connecting agents for client configuration.