Early preview · v0.1.0 · under construction Status & limitations

Sealmesh

Quickstart

For the person whose machine will be observed. It takes about ten minutes. You need gh, logged in, and the https:// address of a router your organization runs. If nobody runs one yet, start with Run a router.

1. Install

brew install sealmesh/tap/sealmesh

Other ways, including the MCP server and building from source, are on Install.

2. Log in

gh auth login          # skip if `gh auth status` already looks right

That is the whole credential story. The daemon reads the token gh already holds, and the name your rows appear under is derived from that login. There is no host name to set, and nobody can answer under your name but you.

3. Write the config

~/.config/sealmesh/config.toml:

integration_branch = "dev"      # "3 ahead" means ahead of this branch
ticket_prefixes = ["ENG"]       # so feature/rework-2 is not read as ticket REWORK-2

[server]
url = "https://router.example.com"

[allow]
repos = ["example-org/example-repo"]   # only these repos are ever answered about
paths = ["~/Development"]              # only agents working under these are looked at

Both allowlists are default-deny. An empty list answers nothing, and that's a startup error rather than a silent no-op.

4. One worktree per agent

Work identity comes from the branch, and git checks out one branch per working copy. Four agents sharing one checkout all report the same branch, so give each agent its own:

git worktree add ../example-repo-eng-612 feature/eng-612-upload-history

5. Look before anything leaves

sealmesh doctor            # every agent seen, and why each was answered or hidden
sealmesh daemon --dry-run  # the exact bytes, no credentials, connects to nothing

Read the dry run. If anything in it surprises you, stop there.

6. Connect

sealmesh daemon

Your teammates see your rows on their next sealmesh who. To keep the daemon running across restarts, see Install › Keep it running.

7. Optional: honest idle and needs-input states

sealmesh install-claude-hook --dry-run
sealmesh install-claude-hook

Without the hook, a live Claude Code session reads working. With it, Sealmesh shows idle when a turn ends and NEEDS INPUT the moment the session asks a question. It merges into ~/.claude/settings.json and keeps your existing hooks. Restart running sessions to pick it up.

The off switch

touch ~/.config/sealmesh/off   # stop sharing; rows read "not sharing"
rm ~/.config/sealmesh/off      # resume

It takes effect on the next query: no restart and no uninstall.

Something wrong or unclear? Open an issue.