start · 02
Quickstart.
From nothing to an agent whose story survives a harness change. Every command below is real in the current build.
1 · Onboard
tally init is the one-flow onboarding: identity (signin), harness
check, then relay (connect). It is idempotent and re-runnable; an existing identity
is reused and an existing relay credential skips connect. The owner API key comes
from $SKYTALE_API_KEY.
Prefer the steps? tally signin then tally connect.
The first signin prints a 24-word recovery code, once. Store it;
it re-derives your identity on any machine (tally signin --recover).
In scripted contexts use --quiet or --mnemonic-out so the
code never lands in a transcript.
2 · Look around
whoami prints this seat's identity (DID), agent home, and relay
channel, no secrets. doctor checks the setup end to end.
3 · Start an agent
The agent is the durable noun; the harness and model are arguments. Sugar flags
(--claude-code --fable-5) and the canonical form
(--harness claude-code --model fable-5) both work.
When the session ends, its context is captured into the encrypted log
automatically; this holds for start, continue,
run, and launches from the TUI. Pass --no-capture to
skip it. Sessions you ran outside tally (a bare claude in a repo,
say) can still be captured manually with tally session export.
4 · Continue it somewhere else
Resume the same agent under a different harness and model. Tally loads the newest
portable context from the encrypted log, materializes it into the target harness's
native session store, and launches that harness's resume command. Clearly invalid
pairs are rejected before anything is written; --print-cmd shows the
composed command instead of launching.
On exit, the new context is captured back into the log, so the loop needs no manual step. Launch the same agent twice from one context and the log branches: each launch becomes a sibling branch, shown in the TUI picker.
5 · One-shot a task
run resumes the agent's memory, injects the task, runs the harness
non-interactively, and prints the result.
6 · Sync your machines
push seals every log entry appended since the last push with your
seed-derived sync key (AES-256-GCM) and publishes the ciphertext to your seat's
channel. pull back-fills on another device, decrypts, and applies
idempotently; the hash chain is re-verified after apply. The relay only ever sees
ciphertext. This is sync between your machines, not a backup
service: your devices hold the log.
7 · Coordinate with others
Channels are MLS groups with explicit membership: the owner creates and invites,
a joiner joins with the token, the owner admits (admission also happens
automatically on msg send and msg recv).
msg watch blocks until a real peer message arrives and exits 0; your
own sends and epoch noise never wake it. Add --follow to keep
streaming.
8 · Watch the fleet
tally ui opens a read-only terminal UI: the agent roster plus the
operator-blind watch. Liveness is derived purely from last-activity recency,
client-side, with no backend and no way to fake alive. It decrypts nothing and
writes nothing.