Docs/Desktop app

Desktop app

Install plan screen

Where an install would write, scope by scope, and the MCP snippet that goes with it — so an operator approving a privileged install can see which files it would touch first. The plan is read-only: the screen states target paths and performs none of the changes. The command behind it is the sealed CLI's install plan (cli), run as tama request install/plan with an empty body.

Where an install would write, scope by scope, and the MCP snippet that goes with it — so an operator approving a privileged install can see which files it would touch first. The plan is read-only: the screen states target paths and performs none of the changes. The command behind it is the sealed CLI's install plan (cli), run as tama request install/plan with an empty body.

#Header and signals

Title Install plan; scope planned changes once a plan is loaded; freshness reads reading now, read <time>, or not read yet; the one action is Re-read plan. The signal strip states Archive root (the release the plan derives from), Scopes, and Active by archive alone — Some / None, where None is the healthy state: nothing in this product activates just because the archive exists.

#Levels

One section per scope level, ordered agent/app → editor → MCP → user-global Git → repo/project Git → OS-level. Each shows the level name, its first note as the detail, and a trailing active or needs a runtime. Fields are the plan's own keys with camel case humanized into labels (codexSettings reads as CODEX SETTINGS); a target the plan reports as null renders Not configured — omitting the row would hide the fact. A sealed release's plan reports, among others: user-global Git hooks: ~/.config/git/hooks and OS-level policy: outside Tama. The repo/project Git section's detail is its note: the user-global dispatcher runs each repository's own .githooks/<hook> after its gates, and a repository must not set a core.hooksPath of its own, because Git then runs that directory instead and neither the Rust format check, the quality check nor review-push runs on its pushes. tama hooks status --repo <path> names such an override.

The user-global Git section adds one row per managed hook, labelled Git hook pre-commit and Git hook pre-push, whose value is the sentence tama install plan prints for it: managed, held aside (where the dispatcher sits, and whether a recorded bypass lets a re-enable restore it), foreign with the first statement of the hook in its place, unreadable: <cause> when a hook is in place that cannot be read, or absent. A held, foreign or unreadable pre-push means the push-time formatting gate is not known to run.

#MCP server

Paste this into a client configuration to expose the bundled Tama tools. The snippet is the answer of tama request mcp/config — the same JSON tama mcp config prints, naming the bundled tama with args ["mcp"] — read lazily alongside the plan. Loading reads Reading the MCP snippet; a failure shows MCP snippet could not be read with the sentence.

#Attestations

Below the model service rows, Carried attestations reads tama request attestation/required and shows every claim a commit message carries for review-push, with Copy block putting them on the clipboard one per line, the Git trailers its harsh review is written in (At least one Harsh-Review-Attacked, No Harsh-Review-Finding, each with why), and each turn-end stop hook's claims. Its form checks a commit in a chosen repository (Check commit) or an answer typed for a chosen hook (Check answer) through attestation/check; the verdict reads <kind> <id> carries every claim, or <kind> <id> does not carry its attestation; the gate refuses it with one missing: "<claim or trailer>" line per missing item and one finding: "Harsh-Review-Finding: <defect>" line per finding, and a refused request shows Tama refused with Tama's sentence. Unpushed commits reads, for a chosen checkout (Choose checkout…, Read unpushed commits), every commit its branch carries over its upstream through attestation/pending: whether every commit stands, then each commit with Stands in its <place> or Does not stand and its missing:, finding: and patches: <sha> <subject> lines, as tama attestation pending prints them. Recorded attestations records, shows, removes and lists a session's attestation and shows the task standard. The terminal's commands and every refusal are on tama attestation.

#States

Before any read: No plan has been read yet — The plan is derived from the bundled release and your home directory. Nothing is written to read it. — with a Read the plan action. A failed read shows Install plan could not be read with the error verbatim and Retry; a plan document without an archiveRoot string and levels object is refused as malformed rather than partially rendered.

The mutation this plan previews — the transactional install itself — is documented in hook-releases; the user-global Git dispatcher install has a runnable example at ../../examples/operations/install-user-git-hooks.sh.