Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/marcus/sidecar/create-adapternpx skills add marcus/sidecar --skill create-adaptergit clone --depth 1 https://github.com/marcus/sidecarWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00078 | $0.04088 |
| Opus 5 | $0.00039 | $0.02044 |
| Sonnet 5 | $0.00016 | $0.00818 |
| Haiku 4.5 | $0.00008 | $0.00409 |
Grade A, and why
create-adapter scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 416 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Create Adapter
Why Performance Matters
Adapters are the largest performance risk in Sidecar. Conversations refresh on watch events in a hot path that runs continuously during active sessions:
watch event -> coalescer -> session refresh -> adapter.Sessions() -> metadata parsing
If an adapter does full directory scans and full-file reparses on every change, CPU and FD usage spike quickly.
Reference Adapters
Study these before writing a new adapter:
internal/adapter/claudecode- Incremental JSONL parsing, targeted refreshinternal/adapter/codex- Directory cache, two-pass metadata parsing, global watch scopeinternal/adapter/cursor- SQLite/WAL-aware cache invalidation, FD-safe DB accessinternal/adapter/pi- Global scope, JSONL, CWD-based filtering, session classification, message prefix stripping
Required Interface
All adapters implement adapter.Adapter:
type Adapter interface {
ID() string
Name() string
Icon() string
Detect(projectRoot string) (bool, error)
Capabilities() CapabilitySet
Sessions(projectRoot string) ([]Session, error)
Messages(sessionID string) ([]Message, error)
Usage(sessionID string) (*UsageStats, error)
Watch(projectRoot string) (<-chan Event, io.Closer, error)
}
Required Session Fields
Every session from Sessions() must set:
ID,NameAdapterID,AdapterName,AdapterIconCreatedAt,UpdatedAtMessageCount,FileSize
FileSize is used for dynamic debounce and huge-session auto-reload protection.
Treat source identity separately from lineage. Use the source's durable thread/session ID
for Session.ID; parent, root, fork, or lineage IDs describe relationships and must not
collapse distinct sessions. Decode metadata fields defensively when the source has emitted
multiple shapes over time (for example, a string in one version and an object in another).
Path and Watch Strategy
Set Session.Path only when Sidecar should use tiered file watching for that adapter:
- File-based append-only (JSONL/log): set
Pathto absolute file path — this opts into TieredWatcher with HOT/COLD/FROZEN tiers - DB/WAL adapters (Cursor, Warp, Kiro): prefer adapter-specific
Watch()with WAL-aware invalidation; do not setPathunless tiered watching covers your write surface
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 416 lines · 78 tokens per session scan A 342d0e7bc51f
create-adapter is a skill published in the GitHub repository marcus/sidecar (1,049 stars, last pushed 2d ago), licensed MIT. It adds 78 tokens to every session and 4,088 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
pre-merge
The CI gate. Takes a feature branch from "eng says done" to "PR open against staging with green checks". Runs the project's preflight-resolved pipeline from devkit/policy.json components[]: sync → parallel correctness + security waves → coverage → regression tail → security/migration → PRD-consistency → open PR. Emits…
intake
The planning front-door. Captures feature ideas and bugs as graded rows in the root INTAKE.md ledger. Use it when the user says "log an idea", "capture a bug", "add to the backlog", "note this down", "track this feature", or invokes /intake. Owns the requirements interview — fleshes out thin ideas, proactively…
merge
The ship gate — the only skill that merges. --staging merges the feature→staging PR on green CI, deploys, verifies, emits a human test script and stamps the staging sign-off on approval. --production ships the double-confirmed release to main and deploys production. Never self-certifies staging; nothing reaches main…
msg
Root menu for msg skills, plus harness modes. --init is the one-time project bootstrap — use it when the user says "initialise project", "bootstrap repo", "set up the framework", "start a new project", or asks to set up project structure in an empty repo. Other modes: --init-staging (add a staging branch), --update…
lorekeeper-marketing
Marketing workflow for Lorekeeper — README copy, manifesto, positioning, and multi-agent A/B testing of copy variations. Load this when working on any user-facing content: README, docs/manifesto.md, positioning, comparison tables, or launch copy.
lorekeeper-reconcile
Reconcile and fact-check Lorekeeper memories against source materials, existing documentation, and internal consistency. Use when (1) the user provides reference materials to verify against, (2) the user requests a general knowledge audit, or (3) the user wants to verify specific topics. Updates memory scores and…