Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>ACLine AINew to Visual Studio Code? Get it now.
ACLine AI

ACLine AI

Muhammad Awais (Nizaami)

| (0) | Free
ACLine: browse and capture acline SDLC state (tasks, decisions, memory, specs, audit trail) from VS Code, via acline mcp serve.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ACLine

A VS Code extension that browses and captures acline SDLC state (tasks, decisions, memory, specs, audit trail) without leaving the editor. It's an MCP client, not a second CLI wrapper: it spawns acline mcp serve as a subprocess and talks the Model Context Protocol to it, the same interface any other MCP client (Claude Desktop, another agent) uses.

Requirements

  • acline on PATH (or set the acline.binaryPath setting to its full path). If the default "acline" isn't found, the extension automatically tries a few common install locations (~/.local/bin, ~/go/bin, /opt/homebrew/bin, /usr/local/bin) before giving up — useful because a GUI-launched (or already-running, reused-process) VS Code doesn't always inherit the PATH your terminal has. If none of those have it either, the error notification has an "Open Settings" button that jumps straight to acline.binaryPath.
  • Go 1.25+ to build acline itself, from the repo root: go build -o acline .

Development

npm install
npm run compile   # or: npm run watch

Then open this directory in VS Code and press F5 to launch an Extension Development Host with the extension loaded.

After any change to acline's Go code (new/changed MCP tools, bug fixes), rebuild and reinstall the binary the extension actually spawns, then reload the window:

cd .. && go build -o ~/.local/bin/acline .   # or wherever acline.binaryPath points

Then, in the Extension Development Host window: Cmd+Shift+P (or Ctrl+Shift+P) → "Developer: Reload Window". A plain refresh/retry isn't enough — ACLineClient spawns one acline mcp serve child process per activation and reuses it for the rest of the session, so a rebuilt binary only takes effect once that process is replaced, which only happens on reload (or relaunching F5). Symptoms of forgetting this step: "unknown tool" errors, or a tool call failing with an error that doesn't match what the current server code should do.

Tests

npm test

Unit tests for the extension's pure logic (currently dashboardRender.ts, the Dashboard webview's HTML-building) via Node's built-in test runner — no VS Code, no MCP server, no network. This intentionally doesn't cover extension.ts/mcpClient.ts/treeViews.ts, which are thin glue over the VS Code API and an MCP client and would need @vscode/test-electron's full extension-host harness (a downloaded VS Code build) to exercise meaningfully; that's a bigger lift not yet done. The practical pattern going forward: when adding non-trivial logic to the extension, pull it into its own vscode-free module (as dashboardRender.ts was split out of dashboardView.ts) so it stays unit-testable without that harness.

What it does (v1)

  • Tree views (activity bar → ACLine icon): Tasks, Memory, Decisions, Specs, Audit Trail — each a thin list view over the corresponding acline mcp serve tool/resource.
  • Commands (Command Palette → "ACLine: ..."): Search, Semantic Search, Add Task, Add Memory, Add Decision, Add Spec, Add Note, Show Memory Decay Candidates, Refresh All Views, Show Dashboard, Select Project.
  • Dashboard (Command Palette or the Tasks view's toolbar icon): a webview covering acline dashboard, acline metrics, and acline verify in one place — active session, tasks needing attention, review/decay nudges, verification-tax metrics, and audit-chain integrity, with a Refresh button.
  • Select Project (Tasks view's toolbar icon): lists registered projects (acline project list) and sets acline.projectFilter to scope every view/command to one, without leaving VS Code.
  • Context menus (right-click an item in its tree view):
    • Tasks: Show Gate Status, Mark Task Done, Approve Task, Reject Task. Marking a task done with an unsatisfied gate shows the blockers and offers to override (recorded, never silent) rather than just failing. Approving as an agent actor without a name set still gets rejected server-side — an agent can't approve its own work — the same rule the CLI enforces.
    • Memory: Reconfirm (Touch), Forget (mark stale — never deletes).
    • Decisions: Accept, Reject, Supersede With Another Decision.
    • Specs: Approve, Revise (replaces the body and bumps the version).
  • Settings: acline.binaryPath, acline.dbPath (optional --db override), acline.projectFilter (optional project name to scope every view/command to).
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft