[■]─[▪]

Project memory
for your work

Sidecar is a local-first CLI tool that helps developers and AI coding agents record decisions, track work, and carry context between sessions.

Git remembers what changed. Sidecar remembers why.

terminal
$ npm install -g sidecar-cli
What Sidecar tracks

Everything your codebase forgets

Code changes live in git. Everything else — the reasoning, the tradeoffs, the half-finished work — disappears between sessions.

⚖️

Decisions

Record the reasoning behind architectural choices. Not just what you did — why you did it.

sidecar decision record
📋

Work Logs

Track what changed in a session. Goals, outcomes, and the files you touched.

sidecar worklog record

Tasks

Add follow-up work directly inside the project. No separate issue tracker needed for small items.

sidecar task add
📝

Notes

Capture observations, warnings, or loose thoughts before they evaporate.

sidecar note
📄

Summaries

Auto-generate a structured project summary that reflects recent activity.

sidecar summary refresh
⚙️

Preferences

Store project-level conventions and style preferences that guide both humans and agents.

sidecar preferences
Built for both

Humans and AI agents,
sharing the same memory

Developers use the CLI directly. An AI coding agent — reading its AGENTS.md instructions in your repository — can do the same: record decisions, log work, and leave notes for whoever comes next.

Sidecar becomes the project's shared memory. When a new session starts — human or agent — it reads the same structured context and picks up where things left off.

Works with Claude Code, Cursor, Codex, and any agent that can run shell commands.

👤
Humans
CLI + local UI to record and review
🤖
AI Agents
Read AGENTS.md, write to Sidecar
.sidecar/AGENTS.md markdown
# Agent Instructions

Before starting work:
$ sidecar context --format markdown

After completing changes:
$ sidecar worklog record \
    --done "..." \
    --files src/... \
    --by agent

If a decision was made:
$ sidecar decision record \
    --title "..." \
    --summary "..." \
    --by agent

$ sidecar summary refresh
The problem

Code is remembered.
Reasoning is not.

Git is a perfect record of what changed. But it tells you almost nothing about why a decision was made, what alternatives were considered, or what work was left half-done.

This gets worse as AI-assisted development becomes normal. An agent finishes a task, the session ends, and all the context it built up about your project is gone. The next session starts cold.

Sidecar gives both humans and agents a place to write things down — in the project, next to the code, for anyone who opens the repo next.

Before

Why did we switch to SQLite here?

No record. Ask someone. Hope they remember.

After

sidecar context

→ "Decided to use SQLite for v1: simple, local, zero config. See decision 2024-11-01."

The pain

  • Decisions live in Slack, get lost
  • AI sessions start cold every time
  • PRs don't explain tradeoffs
  • Follow-up tasks get forgotten
  • Conventions have to be re-explained
How it works

Simple by design

Three steps. Works in any repository. Nothing to sync.

01

Initialize

Run sidecar init in any project. Creates a .sidecar/ folder with a local database and config.

02

Record as you go

Use the CLI to capture decisions, log work, add tasks, and write notes — as you work, not after.

03

Retrieve context

Any time — human or agent — run sidecar context to get a structured view of what happened and why.

A typical session bash
# Start with context from the last session
$ sidecar context

# ... do your work ...

# Record a decision you made
$ sidecar decision record \
    --title "Use SQLite for local storage" \
    --summary "Simple, zero-config, no server required for v1"

# Log the work you completed
$ sidecar worklog record \
    --goal "Add task support" \
    --done "Implemented add/list/done commands" \
    --files src/tasks.ts,src/cli.ts

# Add a follow-up task
$ sidecar task add "Add import/export support" --priority medium

# Refresh the project summary
$ sidecar summary refresh

Designed to stay out of the way

Simple primitives. No cloud. No sync. No account. Just a folder in your repo.

🏠

Local-first

Everything lives in .sidecar/ inside your project. No server, no account, no sync required.

🗄️

Structured memory

Data is stored in SQLite. Predictable, queryable, and inspectable with any standard database tool.

🤖

Agent-friendly

Designed for AI coding workflows. AGENTS.md instructions, stable --json output, and sidecar event add for validated writes from any tool.

📊

Deterministic summaries

sidecar summary refresh generates a reliable snapshot from structured data, not freeform text.

⚙️

Project preferences

Store conventions and style preferences that shape how agents and tools approach the project.

🖥️

Local UI included

Run sidecar ui to open a local web dashboard. Browse decisions, work logs, and tasks all in your browser.

[■]─[▪]

Your project has a lot to say.
Start recording it.

Install Sidecar, initialize it in your repo, and start building a memory layer your future self will thank you for.

$ npm install -g sidecar-cli