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.