tack
Tack gives your agents persistent project memory that stays accurate instead of going stale.
Static instruction files drift the moment the code changes. Tack keeps a shared record in ./.tack/ and checks that memory against the actual codebase, so the next agent starts from context that is still trustworthy.
Install And Prove It Works
- Install Tack. If you prefer not to install globally, use
npx tack-cli@latestinstead oftack.
npm install -g tack-cli
- Initialize the repo and install your agent startup instructions once.
tack init
tack setup-agent
- Keep
tack watchopen in a second terminal as live proof.
tack watch
- Start the MCP server from the repo root with a visible agent label.
TACK_AGENT_NAME=claude tack mcp
On Windows PowerShell, set the label like this instead:
$env:TACK_AGENT_NAME="claude"
tack.cmd mcp
- Confirm the canonical trust loop in
tack watch:
READYmeans the MCP session connectedREADmeans the agent readtack://sessionor another Tack context resourceWRITEmeans the agent wrote memory back withcheckpoint_work,log_decision, orlog_agent_note
If you see READY, READ, and WRITE, the agent is actually using Tack.
At the end of a session, package a handoff:
tack handoff
Read the full guides:
- Product Direction
- Getting Started
- Agent Workflow
- MCP Clients
- Watch Mode
- CLI Reference
- Detectors And YAML Rules
What Tack Actually Does
- Keep implementation facts aligned with the real codebase
- Stop stale project instructions from misleading the next agent
- Preserve decisions, blockers, discoveries, and partial work across sessions
- Show live proof that agents are reading current context and writing memory back
- Carry context across session boundaries with handoffs and MCP startup resources
Why This Matters
- The real failure mode is stale context, not just missing context
- Every repeated question like "what framework are we using?" is a context failure
- Drift detection keeps Tack from lying to the next agent when the code has changed
- Decisions explain why the system looks the way it does before the agent asks
- Handoffs let context survive session boundaries without another interview
Common Workflow
Initialize Tack once at the repo root:
tack init
Install agent instructions once per repo:
tack setup-agent
Use this canonical proof loop when wiring up an agent:
tack watch
TACK_AGENT_NAME=claude tack mcp
On Windows PowerShell:
tack watch
$env:TACK_AGENT_NAME="claude"
tack.cmd mcp
tack watch is the live proof. The happy path is simple: READY, then READ, then WRITE.
Example:
[READY][claude] connected to Tack MCP
[READ][claude] read session context
[WRITE][claude] checkpointed work
v1 does not ship a standalone tack check-in command. Write-back stays behind MCP tools like checkpoint_work plus tack handoff.
During normal work:
tack status
tack watch
If you use more than one agent, give each MCP server its own TACK_AGENT_NAME so tack watch can show who read context, who checked rules, and who wrote memory back.
Example Workflows
New Agent Session
Open a new agent window in a repo that already uses Tack:
tack watch
TACK_AGENT_NAME=claude tack mcp
On Windows PowerShell:
tack watch
$env:TACK_AGENT_NAME="claude"
tack.cmd mcp
The agent reads tack://session, sees the current focus and recent work, and starts from maintained context instead of re-learning the repo. tack watch shows the read live so you know the agent is grounded in current project memory.
Structural Change
The agent wants to add a dependency or introduce a new boundary.
Instead of guessing from stale instructions, it calls check_rule first. That gives a compact yes/no-with-context guardrail check before the architecture changes.
End Of Session
The agent made changes, found one blocker, and left partial work.
Instead of making the next session reconstruct what happened, it calls checkpoint_work once. Tack saves a summary, discoveries, decisions, and related files so the next session inherits usable context immediately.
Learn More
- Product Direction
- Getting Started
- Agent Workflow
- MCP Clients
- Watch Mode
- CLI Reference
- Detectors And YAML Rules
Notes
- offline only, no hidden network calls in Tack's project-memory engine
- writes are guarded to
./.tack/ - Python virtual environments are ignored during scans (
venv,.venv,site-packages) to reduce false positives