sidecar-cli 0.1.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +219 -0
- package/dist/cli.js +727 -0
- package/dist/db/client.js +16 -0
- package/dist/db/schema.js +69 -0
- package/dist/lib/banner.js +12 -0
- package/dist/lib/db.js +36 -0
- package/dist/lib/errors.js +10 -0
- package/dist/lib/format.js +14 -0
- package/dist/lib/output.js +20 -0
- package/dist/lib/paths.js +27 -0
- package/dist/lib/validation.js +31 -0
- package/dist/services/artifact-service.js +12 -0
- package/dist/services/capabilities-service.js +198 -0
- package/dist/services/context-service.js +33 -0
- package/dist/services/event-service.js +82 -0
- package/dist/services/session-service.js +47 -0
- package/dist/services/summary-service.js +68 -0
- package/dist/services/task-service.js +54 -0
- package/dist/templates/agents.js +38 -0
- package/dist/templates/summary.js +52 -0
- package/dist/types/models.js +1 -0
- package/package.json +48 -0
package/README.md
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
[■]─[▪] sidecar
|
|
2
|
+
|
|
3
|
+
project memory for your work
|
|
4
|
+
|
|
5
|
+
# Sidecar CLI
|
|
6
|
+
|
|
7
|
+
Sidecar is a local-first, CLI-first project memory and recording tool for human developers and AI coding agents.
|
|
8
|
+
|
|
9
|
+
## Why Sidecar exists
|
|
10
|
+
|
|
11
|
+
- Keep project memory structured and local.
|
|
12
|
+
- Make session handoffs easier for humans and agents.
|
|
13
|
+
- Record decisions, work logs, tasks, notes, sessions, and artifacts in one stable CLI.
|
|
14
|
+
- Generate deterministic context and summary outputs without any cloud or LLM dependency.
|
|
15
|
+
|
|
16
|
+
## v1 scope
|
|
17
|
+
|
|
18
|
+
- No cloud sync
|
|
19
|
+
- No remote server
|
|
20
|
+
- No GUI
|
|
21
|
+
- No MCP server
|
|
22
|
+
- No passive prompt capture
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
Install globally:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install -g sidecar-cli
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Or run without install:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx sidecar-cli --help
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Requirements:
|
|
39
|
+
|
|
40
|
+
- Node.js 20+
|
|
41
|
+
- npm
|
|
42
|
+
|
|
43
|
+
Install dependencies:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Build:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm run build
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Run locally in dev mode:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm run dev -- --help
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Quick start
|
|
62
|
+
|
|
63
|
+
Initialize in a project directory:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm run dev -- init
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This creates:
|
|
70
|
+
|
|
71
|
+
- `.sidecar/sidecar.db`
|
|
72
|
+
- `.sidecar/config.json`
|
|
73
|
+
- `.sidecar/AGENTS.md`
|
|
74
|
+
- `.sidecar/summary.md`
|
|
75
|
+
|
|
76
|
+
Use `--force` to overwrite Sidecar-managed files.
|
|
77
|
+
|
|
78
|
+
## Core commands
|
|
79
|
+
|
|
80
|
+
Global:
|
|
81
|
+
|
|
82
|
+
- `sidecar init [--force] [--name <project-name>] [--json]`
|
|
83
|
+
- `sidecar status [--json]`
|
|
84
|
+
- `sidecar capabilities --json`
|
|
85
|
+
- `sidecar help`
|
|
86
|
+
|
|
87
|
+
Context and summary:
|
|
88
|
+
|
|
89
|
+
- `sidecar context [--limit <n>] [--format text|markdown|json] [--json]`
|
|
90
|
+
- `sidecar summary refresh [--limit <n>] [--json]`
|
|
91
|
+
- `sidecar recent [--type <event-type>] [--limit <n>] [--json]`
|
|
92
|
+
|
|
93
|
+
Notes, decisions, worklogs:
|
|
94
|
+
|
|
95
|
+
- `sidecar note "<text>" [--title <title>] [--by human|agent] [--session <id>] [--json]`
|
|
96
|
+
- `sidecar decision record --title <title> --summary <summary> [--details <details>] [--by human|agent] [--session <id>] [--json]`
|
|
97
|
+
- `sidecar worklog record --done <summary> [--goal <goal>] [--files a,b] [--risks <text>] [--next <text>] [--by human|agent] [--session <id>] [--json]`
|
|
98
|
+
|
|
99
|
+
Tasks:
|
|
100
|
+
|
|
101
|
+
- `sidecar task add "<title>" [--description <text>] [--priority low|medium|high] [--by human|agent] [--json]`
|
|
102
|
+
- `sidecar task done <task-id> [--by human|agent] [--json]`
|
|
103
|
+
- `sidecar task list [--status open|done|all] [--format table|json] [--json]`
|
|
104
|
+
|
|
105
|
+
Sessions:
|
|
106
|
+
|
|
107
|
+
- `sidecar session start [--actor human|agent] [--name <actor-name>] [--json]`
|
|
108
|
+
- `sidecar session end [--summary <text>] [--json]`
|
|
109
|
+
- `sidecar session current [--json]`
|
|
110
|
+
- `sidecar session verify [--json]`
|
|
111
|
+
- `sidecar doctor [--json]` (alias)
|
|
112
|
+
|
|
113
|
+
Artifacts:
|
|
114
|
+
|
|
115
|
+
- `sidecar artifact add <path> [--kind file|doc|screenshot|other] [--note <text>] [--json]`
|
|
116
|
+
- `sidecar artifact list [--json]`
|
|
117
|
+
|
|
118
|
+
## Example workflow
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
sidecar context --format markdown
|
|
122
|
+
sidecar session start --actor agent --name codex
|
|
123
|
+
sidecar decision record --title "Use SQLite" --summary "Local-first persistence"
|
|
124
|
+
sidecar worklog record --goal "init flow" --done "Implemented schema and command surface" --files src/cli.ts,src/db/schema.ts
|
|
125
|
+
sidecar task add "Add integration tests" --priority medium --by agent
|
|
126
|
+
sidecar summary refresh
|
|
127
|
+
sidecar session end --summary "Initialization and recording flow implemented"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## AI agent usage
|
|
131
|
+
|
|
132
|
+
Sidecar generates `.sidecar/AGENTS.md` during `init`.
|
|
133
|
+
|
|
134
|
+
That file explains:
|
|
135
|
+
|
|
136
|
+
- this repo uses Sidecar
|
|
137
|
+
- required workflow for agents
|
|
138
|
+
- when to record notes, decisions, worklogs, and tasks
|
|
139
|
+
- recommended commands
|
|
140
|
+
- a practical session checklist and example
|
|
141
|
+
|
|
142
|
+
Agents can discover the CLI surface programmatically with:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
sidecar capabilities --json
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Local storage details
|
|
149
|
+
|
|
150
|
+
All data is local in `.sidecar/sidecar.db` (SQLite).
|
|
151
|
+
|
|
152
|
+
Primary tables:
|
|
153
|
+
|
|
154
|
+
- `projects`
|
|
155
|
+
- `events`
|
|
156
|
+
- `tasks`
|
|
157
|
+
- `sessions`
|
|
158
|
+
- `artifacts`
|
|
159
|
+
|
|
160
|
+
No network dependency is required for normal operation.
|
|
161
|
+
|
|
162
|
+
## JSON output
|
|
163
|
+
|
|
164
|
+
Most commands support `--json` and return structured output:
|
|
165
|
+
|
|
166
|
+
- `ok`
|
|
167
|
+
- `command`
|
|
168
|
+
- `data`
|
|
169
|
+
- `errors`
|
|
170
|
+
|
|
171
|
+
This makes Sidecar easy to automate from scripts and AI agents.
|
|
172
|
+
|
|
173
|
+
## Release and distribution
|
|
174
|
+
|
|
175
|
+
Sidecar uses tag-based GitHub Actions releases.
|
|
176
|
+
|
|
177
|
+
Tag formats:
|
|
178
|
+
|
|
179
|
+
- stable: `v1.2.3`
|
|
180
|
+
- beta: `v1.2.3-beta.1`
|
|
181
|
+
- rc: `v1.2.3-rc.1`
|
|
182
|
+
|
|
183
|
+
Behavior:
|
|
184
|
+
|
|
185
|
+
- stable tags publish npm `latest`
|
|
186
|
+
- beta tags publish npm `beta`
|
|
187
|
+
- rc tags publish npm `rc`
|
|
188
|
+
- all release tags create GitHub Releases and upload tarball assets
|
|
189
|
+
- Homebrew tap updates are stable-only (beta/rc intentionally skipped)
|
|
190
|
+
|
|
191
|
+
Workflows:
|
|
192
|
+
|
|
193
|
+
- CI: `.github/workflows/ci.yml`
|
|
194
|
+
- Release: `.github/workflows/release.yml`
|
|
195
|
+
|
|
196
|
+
Required configuration:
|
|
197
|
+
|
|
198
|
+
- `NPM_TOKEN` (secret)
|
|
199
|
+
- `HOMEBREW_TAP_REPO` (variable, optional)
|
|
200
|
+
- `HOMEBREW_TAP_GITHUB_TOKEN` (secret, optional)
|
|
201
|
+
|
|
202
|
+
See [RELEASE.md](./RELEASE.md) for full release steps and examples.
|
|
203
|
+
|
|
204
|
+
Quick preflight:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
npm run release_check -- --tag v1.2.3
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
One-command release:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
npm run release:stable -- --version 1.2.3
|
|
214
|
+
npm run release:beta -- --version 1.2.3 --pre 1
|
|
215
|
+
npm run release:rc -- --version 1.2.3 --pre 1
|
|
216
|
+
|
|
217
|
+
# preview only (no commit/tag/push)
|
|
218
|
+
npm run release:beta -- --version 1.2.3 --pre 1 --dry-run
|
|
219
|
+
```
|