ACLine

CLI · MCP server · Claude Code hooks

“The agent said it’s done” is never the evidence.

ACLine is a local SDLC tracker for coding agents. Specs, tasks, decisions and an append-only audit trail live in one SQLite file — a task only completes when the store holds the checks and approvals its risk requires.

$ curl -fsSL https://acline.nizaami.com/install.sh | bash

What the store enforces

Same rules for a person and an agent.

One store

A single SQLite file (~/.acline/store.db), shared by every project you track. No servers, no sync.

A completion gate

task done refuses without a recorded, passing check — and for high risk, without a person's approval.

A tamper-evident trail

Events are hash-chained; approvals and checks are sealed. acline verify says what was altered.

Agents propose, not decide

Agents draft specs, plans and checks; a person — or the holder of an approval token — approves and accepts.

A guard for Claude Code

A PreToolUse hook that fails closed and refuses secret files, destructive commands and writes outside the project.

MCP server included

acline mcp serve exposes the store to any MCP client, including the VS Code extension.

Quickstart

acline init registers the project and scaffolds hooks, skills and a vault. acline dashboard shows what needs attention; acline next says what should happen to a task and who should do it.

Platforms
macOS and Linux. On Windows, use WSL — the Claude Code hooks need a POSIX shell.
Requirements
Just the acline binary on PATH — no Python dependency.
quickstart.sh
# register the project, scaffold hooks + CLAUDE.md
acline init
# enable the approval token (run this yourself)
acline auth init
# store, audit trail, token, guard hooks, claude binary
acline doctor

# an agent may draft; a person approves
acline spec add "Export as CSV" --body "..."
acline spec approve 1
acline task add "CSV writer" --spec 1 --risk medium
# runs the tool and records its real result
acline check run 1 --kind test
# the gate decides
acline task done 1

Trust in one paragraph

Until you run acline auth init, identity is whatever ACLINE_ACTOR_TYPE says. Enabling the token closes that: approvals, gate overrides, accepting or retiring decisions, approving specs and plans, loosening a task's risk or autonomy, and importing a snapshot all then need a secret the agent is never given. The guard is a best-effort denylist, not a sandbox — see the threat model for the full list of limits.