Metadata-Version: 2.5
Name: octomate-cli
Version: 0.0.4
Summary: Octomate's client half: the operator CLI, native-session hook clients, and the transcript tail.
Project-URL: Repository, https://github.com/kalynnka/octomate
Project-URL: Documentation, https://github.com/kalynnka/octomate/blob/main/cli/README.md
Project-URL: Issues, https://github.com/kalynnka/octomate/issues
License-Expression: AGPL-3.0-only
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: octomate-protocol<0.1,>=0.0.1
Requires-Dist: openai-codex>=0.162.1
Requires-Dist: pydantic-settings>=2.14.1
Requires-Dist: pydantic>=2.12.5
Requires-Dist: pyyaml>=6
Requires-Dist: questionary<3,>=2.1
Requires-Dist: rich>=13
Requires-Dist: tomlkit>=0.13.2
Requires-Dist: typer>=0.25.1
Requires-Dist: uuid-utils>=0.9
Requires-Dist: watchfiles>=1.1.1
Requires-Dist: websockets>=15
Description-Content-Type: text/markdown

# Octomate CLI

Connect native coding agent sessions to an Octomate server. This package provides
hook installation, MCP configuration, and transcript streaming for Claude Code,
Codex, and DeepSeek Harness.

```bash
pip install octomate-cli
octomate configure --url https://your-server.example --token '<api-token>'
octomate claude hooks install
octomate --version
```

Python 3.12 or newer is required. Installing the CLI also installs
`octomate-protocol`; it does not install the server or its dependencies.
Package versions are independent. A compatible server update does not require
updating the CLI; stream connections check the shared wire protocol version.

All commands remain available in help. The foreground runner,
`octomate service serve`, requires the separately installed `octomate` server package. Update this package with the same installer
used to install it, such as `pip install --upgrade octomate-cli`.

See the [project README](https://github.com/kalynnka/octomate).

## Client authentication

Create an invitation on the server, then register using that code:

```sh
octomate service invite
octomate service user create --username alice --password 'YourPassword1!' --invitationcode '<code>'
```

These commands require the server package and use its configured database.
`octomate service invite --url <server>` prints a registration link instead of the code.
Sign-in happens in the Trunkline UI.

Issue an API token through the authenticated account API, then run
`octomate configure --token <api-token>`. The config key is `token` and the
environment override is `OCTOMATE_CLI_TOKEN`. Old `secret` values and
`OCTOMATE_CLI_SECRET` are no longer used. Install hooks and MCP after configuring
the token, and reinstall MCP entries when it changes.

## Workspace development

`./.octomate/cli.toml` overrides `~/.config/octomate/cli.toml` per key. Set both
`url` and `token` for a debugger server; environment overrides still take precedence.

When a workspace TOML exists, its location gives transcript tails their own runtime
scope, even if its settings match the user config. Locks and Codex child-path spools
are separate per config location, agent and session. Replacing the TOML contents
does not change those paths, restart existing tails, or redirect their connections.

Switch TOML before starting a fresh development conversation. Later hooks read the
current config, while an already-running tail keeps its startup URL and token,
including on reconnect. This is not whole-session pinning: switching during an
existing conversation can split its hooks and transcript stream across servers.
Runtime scoping also does not isolate server data for the same native session.
