cc-copilot 0.13.2__py3-none-any.whl
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.
- cc_copilot-0.13.2.dist-info/METADATA +448 -0
- cc_copilot-0.13.2.dist-info/RECORD +32 -0
- cc_copilot-0.13.2.dist-info/WHEEL +5 -0
- cc_copilot-0.13.2.dist-info/entry_points.txt +2 -0
- cc_copilot-0.13.2.dist-info/licenses/LICENSE +21 -0
- cc_copilot-0.13.2.dist-info/top_level.txt +1 -0
- cccopilot/__init__.py +13 -0
- cccopilot/__main__.py +6 -0
- cccopilot/assess.py +194 -0
- cccopilot/backends.py +225 -0
- cccopilot/brief.py +193 -0
- cccopilot/chat.py +680 -0
- cccopilot/cli.py +742 -0
- cccopilot/config.py +190 -0
- cccopilot/context.py +753 -0
- cccopilot/handoff.py +80 -0
- cccopilot/lastlook.py +152 -0
- cccopilot/locate.py +299 -0
- cccopilot/narrate.py +196 -0
- cccopilot/notify.py +83 -0
- cccopilot/observe.py +354 -0
- cccopilot/prefs.py +60 -0
- cccopilot/scope.py +524 -0
- cccopilot/since.py +218 -0
- cccopilot/sources/__init__.py +161 -0
- cccopilot/sources/base.py +95 -0
- cccopilot/sources/claude.py +55 -0
- cccopilot/sources/codex.py +518 -0
- cccopilot/state.py +294 -0
- cccopilot/store.py +795 -0
- cccopilot/transcript.py +302 -0
- cccopilot/tui.py +2106 -0
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cc-copilot
|
|
3
|
+
Version: 0.13.2
|
|
4
|
+
Summary: Read-only shadow-memory sidecar for coding agents: faithful, evidence-cited recap + safety judgment + grounded chat.
|
|
5
|
+
Author: audiofool
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Audiofool934/cc-copilot
|
|
8
|
+
Project-URL: Repository, https://github.com/Audiofool934/cc-copilot
|
|
9
|
+
Project-URL: Changelog, https://github.com/Audiofool934/cc-copilot/blob/main/CHANGELOG.md
|
|
10
|
+
Project-URL: Issues, https://github.com/Audiofool934/cc-copilot/issues
|
|
11
|
+
Keywords: claude-code,codex,tui,observability,agent,cli,sidecar
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Environment :: Console
|
|
20
|
+
Classifier: Intended Audience :: Developers
|
|
21
|
+
Classifier: Topic :: Software Development
|
|
22
|
+
Classifier: Topic :: Terminals
|
|
23
|
+
Classifier: Topic :: Utilities
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Provides-Extra: tui
|
|
28
|
+
Requires-Dist: textual>=2.0; extra == "tui"
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
# CC-Copilot
|
|
32
|
+
|
|
33
|
+
[](https://pypi.org/project/cc-copilot/)
|
|
34
|
+
[](https://pypi.org/project/cc-copilot/)
|
|
35
|
+
[](https://github.com/Audiofool934/cc-copilot/actions/workflows/ci.yml)
|
|
36
|
+
[](LICENSE)
|
|
37
|
+
|
|
38
|
+
**CC-Copilot helps you stay aligned with AI coding agents.**
|
|
39
|
+
|
|
40
|
+
Cockpit is the primary TUI experience: a live supervision layer for ongoing
|
|
41
|
+
agentic work, shared context, and next decisions.
|
|
42
|
+
|
|
43
|
+
Ask questions across one session, selected sessions, or an entire project
|
|
44
|
+
without injecting supervision chatter into the main Claude Code or Codex
|
|
45
|
+
workflow.
|
|
46
|
+
|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
## Quick Start
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
cc-copilot cockpit
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Inside Cockpit:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
/sessions choose one or more agent sessions (incl. your own live session)
|
|
59
|
+
/here observe the session you're running inside of
|
|
60
|
+
/observe attention queue and next human decision
|
|
61
|
+
/since recap since you last looked (or 30m / 2h; --raw = cited delta)
|
|
62
|
+
/handoff shareable Markdown handoff (brief + what changed)
|
|
63
|
+
/brief deterministic recap with citations
|
|
64
|
+
/check safety / off-track verdict
|
|
65
|
+
/diff changes since last turn
|
|
66
|
+
/model choose backend/model
|
|
67
|
+
/resume resume a Cockpit Session
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Install
|
|
71
|
+
|
|
72
|
+
One command, no clone — install it as an isolated tool:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
uv tool install "cc-copilot[tui]" # recommended (https://docs.astral.sh/uv/)
|
|
76
|
+
# or
|
|
77
|
+
pipx install "cc-copilot[tui]"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Then:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
cc-copilot cockpit
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Or run it without installing anything:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
uvx --from "cc-copilot[tui]" cc-copilot cockpit
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Requirements: Python 3.9+. The CLI core is **dependency-free**; the Cockpit TUI
|
|
93
|
+
pulls in the optional `[tui]` extra (Textual) — drop it (`cc-copilot` instead of
|
|
94
|
+
`cc-copilot[tui]`) if you only want the command-line briefs.
|
|
95
|
+
|
|
96
|
+
<details>
|
|
97
|
+
<summary>plain <code>pip</code> / from source</summary>
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
pip install "cc-copilot[tui]" # from PyPI
|
|
101
|
+
# from a clone (development):
|
|
102
|
+
pip install -e ".[tui]"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
On fresh Debian/Ubuntu servers `pipx`/venv may need:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
sudo apt-get update && sudo apt-get install -y python3-venv python3-pip pipx
|
|
109
|
+
```
|
|
110
|
+
</details>
|
|
111
|
+
|
|
112
|
+
## Why CC-Copilot
|
|
113
|
+
|
|
114
|
+
Past copilots reduced the cognitive burden of understanding code.
|
|
115
|
+
|
|
116
|
+
Agentic coding creates a new burden: understanding what agents are doing over
|
|
117
|
+
time. Long-running Claude Code, Codex, and multi-agent workflows produce
|
|
118
|
+
continuous context, decisions, tool calls, errors, and partial progress.
|
|
119
|
+
|
|
120
|
+
CC-Copilot gives humans a separate supervision layer. You can inspect, ask,
|
|
121
|
+
compare, and realign without interrupting the working agent or forcing yourself
|
|
122
|
+
to reconstruct context manually.
|
|
123
|
+
|
|
124
|
+
## What Makes It Different
|
|
125
|
+
|
|
126
|
+
1. **Read-only supervision**
|
|
127
|
+
CC-Copilot observes agent transcripts and project context without editing
|
|
128
|
+
files, issuing agent actions, or interfering with the working agent.
|
|
129
|
+
|
|
130
|
+
2. **Separate Cockpit workflow**
|
|
131
|
+
Ask supervision questions outside the main agent conversation, so the
|
|
132
|
+
agent's working context stays clean.
|
|
133
|
+
|
|
134
|
+
3. **Evidence-grounded answers**
|
|
135
|
+
Answers are grounded in transcript lines, tool results, project facts, git
|
|
136
|
+
state, and file evidence.
|
|
137
|
+
|
|
138
|
+
4. **Multi-session awareness**
|
|
139
|
+
Follow one session, selected sessions, or an entire project from one
|
|
140
|
+
interface.
|
|
141
|
+
|
|
142
|
+
5. **Attention-first UI**
|
|
143
|
+
Cockpit surfaces status, risk, progress, and the next human decision instead
|
|
144
|
+
of forcing you to read the whole transcript.
|
|
145
|
+
|
|
146
|
+
6. **Model-flexible**
|
|
147
|
+
Use Codex, Claude, OpenAI-compatible APIs, DeepSeek, OpenRouter, Ollama,
|
|
148
|
+
Gemini, or custom CLI backends.
|
|
149
|
+
|
|
150
|
+
7. **Terminal-native**
|
|
151
|
+
Keyboard-first TUI with mouse support, designed for side-window and
|
|
152
|
+
CMUX-style workflows.
|
|
153
|
+
|
|
154
|
+
8. **Resumable Cockpit Sessions**
|
|
155
|
+
Your supervision conversation is independent from the agent session and can
|
|
156
|
+
be resumed later.
|
|
157
|
+
|
|
158
|
+
## Usage
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
cc-copilot cockpit # open the TUI
|
|
162
|
+
cc-copilot sessions # list project sessions
|
|
163
|
+
cc-copilot status # fleet board, neediest first
|
|
164
|
+
cc-copilot observe # attention queue
|
|
165
|
+
cc-copilot brief # deterministic recap
|
|
166
|
+
cc-copilot check # safety verdict
|
|
167
|
+
cc-copilot since # grounded LLM recap since you last looked
|
|
168
|
+
cc-copilot since 30m # …or within a time window
|
|
169
|
+
cc-copilot since --raw # the deterministic cited delta, no model call
|
|
170
|
+
cc-copilot handoff --out h.md # shareable Markdown handoff
|
|
171
|
+
cc-copilot watch --notify # desktop alert when the agent needs you
|
|
172
|
+
cc-copilot ask "what changed?" # one-shot grounded Q&A
|
|
173
|
+
cc-copilot chat # plain terminal chat mode
|
|
174
|
+
cc-copilot resume # resumable Cockpit Sessions
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Scope options:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
cc-copilot cockpit # one agent session by default
|
|
181
|
+
cc-copilot cockpit --scope multi # selected/all sessions in this project
|
|
182
|
+
cc-copilot cockpit --scope project # project-level evidence context
|
|
183
|
+
|
|
184
|
+
cc-copilot ask --scope multi --scope-sessions a1b2c3d4,b5c53c29 "compare these"
|
|
185
|
+
cc-copilot observe --scope project
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Session discovery spans every coding agent with sessions on this machine:
|
|
189
|
+
|
|
190
|
+
```text
|
|
191
|
+
${CLAUDE_CONFIG_DIR:-~/.claude}/projects/<encoded-cwd>/<session>.jsonl # Claude Code
|
|
192
|
+
${CODEX_HOME:-~/.codex}/sessions/YYYY/MM/DD/rollout-*.jsonl # Codex
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
A project's sessions from both agents appear on one board, grouped by project
|
|
196
|
+
cwd and tagged with their agent. Restrict the set with `--agent claude`,
|
|
197
|
+
`--agent codex`, `$CC_COPILOT_AGENTS`, or `[agents] enabled` in the config.
|
|
198
|
+
|
|
199
|
+
By default, commands report on the most recent session other than the current
|
|
200
|
+
one, so running CC-Copilot from inside a live agent session watches the agent
|
|
201
|
+
you want to supervise. To watch your **own** current session instead, use
|
|
202
|
+
`--here` (e.g. `cc-copilot cockpit --here`) or `/here` inside the cockpit — it is
|
|
203
|
+
also always listed in `/sessions` as "your live session", even across projects.
|
|
204
|
+
See [docs/cross-model-adapters.md](docs/cross-model-adapters.md).
|
|
205
|
+
|
|
206
|
+
## Cockpit
|
|
207
|
+
|
|
208
|
+
Cockpit is the main product surface.
|
|
209
|
+
|
|
210
|
+
It gives you:
|
|
211
|
+
|
|
212
|
+
- Status header for project, evidence range, Cockpit Session, backend, and risk.
|
|
213
|
+
- Live activity strip from the observed session(s).
|
|
214
|
+
- Attention queue and next human decision via `/observe`.
|
|
215
|
+
- Grounded chat over one session, selected sessions, or project evidence.
|
|
216
|
+
- Context HUD showing estimated input context, output estimate, and evidence
|
|
217
|
+
split across raw transcript, project facts, chat, memory, and summary index.
|
|
218
|
+
- Background alerts when the agent stalls, errors, or goes off track.
|
|
219
|
+
- Checkbox session picker with `[ ]` / `[x]` multi-select.
|
|
220
|
+
- Resumable Cockpit Sessions via `/resume`.
|
|
221
|
+
|
|
222
|
+
Keyboard is primary; mouse works too. Click anywhere to return focus to the
|
|
223
|
+
composer. `Enter` sends, `Ctrl+J` inserts a newline, `/` opens command
|
|
224
|
+
suggestions, and `Ctrl+P` opens the command palette. `Shift+↑` / `Shift+↓` resize
|
|
225
|
+
the activity timeline (the chat fills the rest); the height is remembered across
|
|
226
|
+
launches.
|
|
227
|
+
|
|
228
|
+
## While You Were Away
|
|
229
|
+
|
|
230
|
+
The hardest part of supervising long-running agents is *re-entry*: you stepped
|
|
231
|
+
away, the agent kept working, and now you have to reconstruct what happened.
|
|
232
|
+
|
|
233
|
+
- **`since`** answers "what changed since I last looked" — by default a short
|
|
234
|
+
**LLM recap narrated from** the deterministic, cited diff of new asks, agent
|
|
235
|
+
messages, commands, failures, changed files, and any status/safety transition
|
|
236
|
+
(the model sees only that cited delta and keeps its `[L…]` citations; `--raw`
|
|
237
|
+
or no backend gives the deterministic delta itself). cc-copilot remembers where
|
|
238
|
+
you last looked (a
|
|
239
|
+
small marker under `$CC_COPILOT_STATE_DIR`, never under `~/.claude`/`~/.codex`);
|
|
240
|
+
the cockpit stamps it when you leave and greets you with "⟳ N new since you last
|
|
241
|
+
looked" when you return. Or scope by time: `since 30m`, `since 2h`.
|
|
242
|
+
- **`handoff`** turns the current state into a shareable Markdown document — the
|
|
243
|
+
brief plus an optional "while you were away" section — to paste into a ticket
|
|
244
|
+
or hand to a teammate. Every line keeps its `[L…]` citation.
|
|
245
|
+
- **`watch --notify`** pings you (desktop notification, terminal-bell fallback)
|
|
246
|
+
only when a session *crosses into* needing you — a fresh intervene verdict, a
|
|
247
|
+
slide into stalled, or a new failure — so you can step away without missing the
|
|
248
|
+
moment it actually needs a human.
|
|
249
|
+
|
|
250
|
+
All three are LLM-free and work across Claude Code and Codex sessions.
|
|
251
|
+
|
|
252
|
+
## Evidence Context
|
|
253
|
+
|
|
254
|
+
v0.7 introduced the Evidence Context Engine.
|
|
255
|
+
|
|
256
|
+
For model-backed `ask`, `chat`, and Cockpit answers, CC-Copilot now retrieves
|
|
257
|
+
primary evidence first:
|
|
258
|
+
|
|
259
|
+
- raw assistant messages
|
|
260
|
+
- raw human prompts
|
|
261
|
+
- tool calls and tool results
|
|
262
|
+
- cited line windows
|
|
263
|
+
- recent transcript tail
|
|
264
|
+
- selected multi-session records
|
|
265
|
+
- read-only project facts
|
|
266
|
+
- git/file evidence
|
|
267
|
+
- Cockpit conversation memory
|
|
268
|
+
|
|
269
|
+
Summaries still exist, but they are navigation aids and UI surfaces, not the
|
|
270
|
+
only source of truth. See [docs/evidence-context-engine.md](docs/evidence-context-engine.md).
|
|
271
|
+
|
|
272
|
+
## Models
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
cc-copilot backends
|
|
276
|
+
cc-copilot cockpit --backend codex
|
|
277
|
+
cc-copilot cockpit --backend claude
|
|
278
|
+
cc-copilot ask "what matters next?" --backend openai --model gpt-4o
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Supported backend families:
|
|
282
|
+
|
|
283
|
+
| backend | authentication | notes |
|
|
284
|
+
|---|---|---|
|
|
285
|
+
| `codex` | your `codex login` | default; local agent CLI |
|
|
286
|
+
| `claude` | your Claude Code login | `claude -p`; no API key |
|
|
287
|
+
| `gemini` / `llm` | the CLI's own config | if installed on PATH |
|
|
288
|
+
| `deepseek` | `DEEPSEEK_API_KEY` | OpenAI-compatible HTTP |
|
|
289
|
+
| `openai` | `OPENAI_API_KEY` | OpenAI-compatible HTTP |
|
|
290
|
+
| `openrouter` | `OPENROUTER_API_KEY` | any OpenRouter model |
|
|
291
|
+
| `ollama` | none | local server at `http://localhost:11434` |
|
|
292
|
+
| `custom` | `CC_COPILOT_API_BASE` or `CC_COPILOT_LLM_CMD` | proxy/API/CLI escape hatch |
|
|
293
|
+
|
|
294
|
+
Set defaults once:
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
cc-copilot config --init
|
|
298
|
+
cc-copilot config
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Example `~/.cc-copilot.toml`:
|
|
302
|
+
|
|
303
|
+
```toml
|
|
304
|
+
backend = "codex"
|
|
305
|
+
# model = "..."
|
|
306
|
+
|
|
307
|
+
[history]
|
|
308
|
+
enabled = true
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Precedence: explicit flags > environment variables > config file > built-in
|
|
312
|
+
default.
|
|
313
|
+
|
|
314
|
+
## Read-Only Contract
|
|
315
|
+
|
|
316
|
+
CC-Copilot is an observer.
|
|
317
|
+
|
|
318
|
+
It reads:
|
|
319
|
+
|
|
320
|
+
- agent transcripts
|
|
321
|
+
- session metadata
|
|
322
|
+
- read-only project facts
|
|
323
|
+
- git status
|
|
324
|
+
- cited file excerpts
|
|
325
|
+
- saved Cockpit conversation state
|
|
326
|
+
|
|
327
|
+
It does not:
|
|
328
|
+
|
|
329
|
+
- mutate the observed agent session
|
|
330
|
+
- edit project files
|
|
331
|
+
- run tools on behalf of the observed agent
|
|
332
|
+
- write under `~/.claude`
|
|
333
|
+
- inject supervision chatter into Claude Code or Codex
|
|
334
|
+
|
|
335
|
+
Deterministic commands work without an LLM:
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
cc-copilot brief
|
|
339
|
+
cc-copilot observe
|
|
340
|
+
cc-copilot check
|
|
341
|
+
cc-copilot status
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
Interactive `/diff` is available inside Cockpit and `cc-copilot chat`.
|
|
345
|
+
|
|
346
|
+
LLM-backed answers receive bounded cited evidence context, not tool access or
|
|
347
|
+
ambient repo access.
|
|
348
|
+
|
|
349
|
+
## Cockpit Sessions
|
|
350
|
+
|
|
351
|
+
A Cockpit Session is separate from an agent session.
|
|
352
|
+
|
|
353
|
+
It stores:
|
|
354
|
+
|
|
355
|
+
- your supervision Q&A
|
|
356
|
+
- backend/model selection
|
|
357
|
+
- project cwd
|
|
358
|
+
- selected evidence sessions
|
|
359
|
+
- durable compacted memory for older Q&A
|
|
360
|
+
|
|
361
|
+
Changing evidence with `/sessions` changes what the current Cockpit reads; it
|
|
362
|
+
does not switch to another Cockpit Session.
|
|
363
|
+
|
|
364
|
+
Saved state lives under:
|
|
365
|
+
|
|
366
|
+
```text
|
|
367
|
+
${CC_COPILOT_STATE_DIR:-~/.local/state/cc-copilot}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
Directories are `0700`, files are `0600`. Disable persistence with:
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
cc-copilot cockpit --no-persist
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
or:
|
|
377
|
+
|
|
378
|
+
```toml
|
|
379
|
+
[history]
|
|
380
|
+
enabled = false
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
## How It Works
|
|
384
|
+
|
|
385
|
+
```text
|
|
386
|
+
sources/ agent adapters: discover sessions + parse a transcript
|
|
387
|
+
base.py the AgentSource contract + registry/dispatch
|
|
388
|
+
claude.py Claude Code (~/.claude/projects/**)
|
|
389
|
+
codex.py Codex (~/.codex/sessions/**/rollout-*.jsonl)
|
|
390
|
+
transcript.py the normalized record model Claude Code parses into
|
|
391
|
+
state.py fold records into deterministic session state
|
|
392
|
+
assess.py classify stalls, failures, retry loops, and safety signals
|
|
393
|
+
brief.py render deterministic cited recaps
|
|
394
|
+
since.py "what changed since you last looked" (cited diff)
|
|
395
|
+
lastlook.py remember where the human last looked (per session)
|
|
396
|
+
handoff.py a shareable Markdown handoff artifact
|
|
397
|
+
notify.py conservative away-alerts (desktop / terminal)
|
|
398
|
+
observe.py rank attention and next human decision
|
|
399
|
+
scope.py collect session, multi-session, and project evidence
|
|
400
|
+
context.py retrieve raw evidence for model-backed answers
|
|
401
|
+
store.py persist resumable Cockpit Sessions and compacted memory
|
|
402
|
+
backends.py call Codex, Claude, OpenAI-compatible APIs, Ollama, etc.
|
|
403
|
+
tui.py Cockpit, the Textual TUI
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
Agent specifics live entirely in `sources/`. Each adapter supplies just two
|
|
407
|
+
things — discovery and parse — and emits the same normalized records, so state,
|
|
408
|
+
assessment, briefing, context, and cockpit are agent-agnostic. One cockpit can
|
|
409
|
+
watch Claude Code and Codex sessions side by side, grouped by project. Adding
|
|
410
|
+
another agent (Gemini CLI, Aider, …) is a new `sources/` adapter, not a rewrite.
|
|
411
|
+
|
|
412
|
+
## Development
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
git clone https://github.com/Audiofool934/cc-copilot.git
|
|
416
|
+
cd cc-copilot
|
|
417
|
+
pip install -e ".[tui]" # editable install with the Cockpit extra
|
|
418
|
+
|
|
419
|
+
python3 -m unittest discover # stdlib-only test suite
|
|
420
|
+
cc-copilot cockpit
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
Core tests are stdlib-only. Textual is optional and lazy-imported by Cockpit.
|
|
424
|
+
Releases publish to PyPI automatically on a `v*` tag — see
|
|
425
|
+
[`docs/RELEASING.md`](docs/RELEASING.md).
|
|
426
|
+
|
|
427
|
+
## Roadmap
|
|
428
|
+
|
|
429
|
+
- Homebrew tap + a `curl | sh` one-line installer
|
|
430
|
+
- deeper project evidence retrieval and file ranking
|
|
431
|
+
- streaming responses and exact backend token usage
|
|
432
|
+
- additional transcript parsers beyond Claude Code
|
|
433
|
+
- hook-driven push alerts for unattended runs
|
|
434
|
+
|
|
435
|
+
Rust migration is tracked separately in [docs/rust-migration.md](docs/rust-migration.md).
|
|
436
|
+
|
|
437
|
+
## Philosophy
|
|
438
|
+
|
|
439
|
+
The main agent conversation should stay focused on doing the work.
|
|
440
|
+
|
|
441
|
+
Supervision is a different job: inspect what happened, compare evidence, ask
|
|
442
|
+
what matters, preserve decisions, and decide whether to intervene. Mixing that
|
|
443
|
+
into the working agent thread creates noise and changes the very context you
|
|
444
|
+
are trying to observe.
|
|
445
|
+
|
|
446
|
+
CC-Copilot keeps supervision outside the main workflow. Cockpit is where the
|
|
447
|
+
human can regain situational awareness without contaminating the agent's own
|
|
448
|
+
conversation.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
cc_copilot-0.13.2.dist-info/licenses/LICENSE,sha256=FwxEQ4xSkeeDlxHzio3y3tlt-vPIjK-4Da-8o4-VUtk,1066
|
|
2
|
+
cccopilot/__init__.py,sha256=Gxol4-Z5UAtp98crsSSZk8Y3Hd_qnO_B03AS27w1Nts,623
|
|
3
|
+
cccopilot/__main__.py,sha256=4JMK66Wj4uLZTKbF-sT3LAxOsr6buig77PmOkJCRRxw,83
|
|
4
|
+
cccopilot/assess.py,sha256=d0DsszqHzC3ktUW29mTe98qzA9I-TaKgDaooEGkeQwo,7356
|
|
5
|
+
cccopilot/backends.py,sha256=49X0pHyFbkmFScFm0ZWpWWOztwAHiAPkAfhut-Qetos,9989
|
|
6
|
+
cccopilot/brief.py,sha256=ghERjNKR2_wt8ARcaalSEAc1RncgfO4v_Q1K0qKpucU,7393
|
|
7
|
+
cccopilot/chat.py,sha256=Tf0-GbGhc-5t7A4Utx5SMxAMY3fMYp9erhVIhnS90oE,30455
|
|
8
|
+
cccopilot/cli.py,sha256=rUZ14rmxEL4gh_8NnAgiidbecmj_1nJQ_-wM4CkRX3M,31737
|
|
9
|
+
cccopilot/config.py,sha256=2mm_HuNnFkm1A7Sug4ZifzGqQ3MbJWYGwOEU-lemb7U,7341
|
|
10
|
+
cccopilot/context.py,sha256=-kxiF8DGSOhc-g6zYbrA5Gwrdm_kVaIkK2Ef9YIjGgE,27459
|
|
11
|
+
cccopilot/handoff.py,sha256=ivIfcz81wtcRzCvdYHeJWjqMYLR_3xH3xkA46yw6g9M,2965
|
|
12
|
+
cccopilot/lastlook.py,sha256=V8ZnCrB8lTlHzr65OHko1qFE2F7-kFH4h5gio3FahF0,5312
|
|
13
|
+
cccopilot/locate.py,sha256=fVMFZjUyw13pBRs6eUsLFy-7Q9DE-ULQkqQidek4RXM,10132
|
|
14
|
+
cccopilot/narrate.py,sha256=mXThtZwTleFsC5KwePdS2y_LUpJhwuoxxRwo1Cm21Rw,8607
|
|
15
|
+
cccopilot/notify.py,sha256=cWVRt4ee7V2HwZuXyih1M0yInxYl-LjFDSIQXI6xKtI,3353
|
|
16
|
+
cccopilot/observe.py,sha256=nnHNRAs6gFLx94akIV-Y7t7A9UlTnm8FHWgPHSZCbvc,13507
|
|
17
|
+
cccopilot/prefs.py,sha256=E9pvRmrPx98pxus7AIYno-5mVn_TlHlR9dRR9YqoJ3E,1717
|
|
18
|
+
cccopilot/scope.py,sha256=taSgtOYmWbpZh2wGqXg9yMhsQV94yYQb1PhvjSPOJTw,19414
|
|
19
|
+
cccopilot/since.py,sha256=5wyx7VGbNRe2LLZ9n_6AOZWUdAx0ZgfxJVTnjbdRKuY,8625
|
|
20
|
+
cccopilot/state.py,sha256=mSblvrCetoZg1zFp9H5MoJw8-m5GhsCPoGsFB17T-VU,11065
|
|
21
|
+
cccopilot/store.py,sha256=_EnkS6VvdaaZ209igb5idspG55Y31fthPymenG2A-kU,30502
|
|
22
|
+
cccopilot/transcript.py,sha256=EOIJMZ23WXovBIhI2l-skZ7W1DiYENySnIllNMVq2ik,12210
|
|
23
|
+
cccopilot/tui.py,sha256=Li9yicEDFcKrBaTY9mhQdrHzo0TDAiaT_v6F1rFNnpY,92356
|
|
24
|
+
cccopilot/sources/__init__.py,sha256=fMuSJ0Z3wo1iyaBePev5CoFK48WxztvYUP0sWazrGFk,5454
|
|
25
|
+
cccopilot/sources/base.py,sha256=1EMOcHM2y1mTcmUuu-ERNx89QBrnzA4FeAMj3De78kU,3724
|
|
26
|
+
cccopilot/sources/claude.py,sha256=LZrNOXV6q2m0llkLF11sEPaFolrnWjQ0HTe9LfAI9Rw,1964
|
|
27
|
+
cccopilot/sources/codex.py,sha256=n-6F7gwA4h5yknkHcBg0HqzVwOPWAVUy0yaWxCwIoxM,21049
|
|
28
|
+
cc_copilot-0.13.2.dist-info/METADATA,sha256=05hgb5YXfWoDriFJGMhc9gtZPWInuD-veKBtk3hN4m4,15680
|
|
29
|
+
cc_copilot-0.13.2.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
30
|
+
cc_copilot-0.13.2.dist-info/entry_points.txt,sha256=T-EJBaoPwtrRbhs1BQWUu00jrT3z1Niy741PyUItig4,50
|
|
31
|
+
cc_copilot-0.13.2.dist-info/top_level.txt,sha256=PKwEmhIUX7YFia2CoZpbW3D9p7QI44vtht0w8xOm2pI,10
|
|
32
|
+
cc_copilot-0.13.2.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 audiofool
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cccopilot
|
cccopilot/__init__.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"""cc-copilot — a read-only shadow-memory sidecar for Claude Code sessions.
|
|
2
|
+
|
|
3
|
+
Reads a Claude Code session transcript (the local JSONL ledger) and
|
|
4
|
+
reconstructs, *deterministically and with evidence*, what the agent has been
|
|
5
|
+
doing — so a human who stepped away can come back and ask "what happened,
|
|
6
|
+
is it stuck, what should I look at?" without scrolling the transcript.
|
|
7
|
+
|
|
8
|
+
The design rule that makes this a copilot and not a second hallucinating
|
|
9
|
+
agent: every statement in a brief points back to a concrete transcript event
|
|
10
|
+
(a JSONL line number + timestamp). The deterministic core never guesses.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
__version__ = "0.13.2"
|