CLI

Drive your whole workspace from a terminal, a script, or a coding agent's shell.

dots is the whole platform at a terminal. Its workspace families are a one-to-one front end onto the same API routes the web app calls, so the browser and the command line are two views of one thing rather than a full product and a reduced one.

The rule is exact: anything a user can do in the UI, an agent can do through the CLI — and through MCP unless named-exempt. So anything you can do in the interface you can do in a script, in a pipeline, or from a coding agent's shell.

Exemption is the only way a capability sits on one surface and not another, and each one is a named record stating what about that capability cannot cross. A parity census holds the surfaces to that rule, refusing any route, screen, or command carrying neither a counterpart, a recorded exemption, nor a filed defect — so where the surfaces do differ, the difference is written down rather than left for you to discover.

The reader this surface is tuned for is a program. Output defaults to a shape a model parses, failures exit with codes a script branches on, and every read can be bounded at the source rather than truncated downstream.

Get Started

Key Features

  • A noun and a verb. Commands group into families — dots rows list, dots edges create, dots dotabases describe. Any family explains itself with dots <family> --help.
  • Agent-shaped output. --format chooses across md, json, yaml, table, csv, and plain, defaulting to md on every surface, so a pipe gets the same bytes a person saw. A script sets DOTS_SCRIPT=1 to make json the default and drop the agent marker.
  • Bounded reads. --fields, --depth, --token-budget, and --level cap what comes back at the source instead of truncating it downstream.
  • Typed exit codes. Usage, auth, not-found, conflict, network, configuration, and retryable each carry their own code, so a script branches on what actually went wrong without parsing an error message.
  • One company per invocation. --company <slug> chooses among your memberships, DOTS_COMPANY sets it from the environment, dots use <slug> --repo binds a repository by committing dots.json at its root, and dots use <slug> persists a machine-wide default.
  • A server for your agent. dots mcp launches the stdio MCP server that serves this same workspace to a coding agent.
  • Your own machine. dots local runs the local daemon, and dots init provisions a fresh database into a bootable instance.

Resources