Skip to content

Commit 09cf7d6

Browse files
ithiria894claude
andcommitted
release v0.20.0 with OpenCode and session fixes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 400f45e commit 09cf7d6

38 files changed

Lines changed: 1888 additions & 520 deletions

.claude-plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "cross-code-organizer",
3-
"version": "0.2.5",
4-
"description": "Organize all your Claude Code memories, skills, MCP servers, and hooks — see what loads globally vs per-project, then move items between scopes",
3+
"version": "0.20.0",
4+
"description": "Inspect and organize Claude Code memories, skills, MCP servers, hooks, and project context from a local dashboard",
55
"author": {
66
"name": "ithiria894",
77
"url": "https://github.com/ithiria894"

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ Screenshot*.png
2929
docs/screenshot.png
3030
PLAN.md
3131
SHIP.md
32-
tests/
32+
# Keep generated/ad-hoc test files local, while allowing maintained unit tests.
33+
tests/*
34+
!tests/unit/
35+
tests/unit/*
36+
!tests/unit/test-opencode-adapter.mjs
37+
!tests/unit/test-session-distiller.mjs
3338
test-results/
3439

3540
# Cloned reference datasets (too large to push, download separately)

.npmignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
.mcpregistry_registry_token
33
mcp-publisher
44
*.tgz
5+
src/session-distiller-v2.mjs
6+
src/session-distiller-v3.mjs
7+
src/session-distiller-v4.mjs
8+
src/session-distiller-v5.mjs
59
PLAN.md
610
SHIP.md
711
docs/

AI_INDEX.md

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,21 @@
2020

2121
## Backend domains
2222

23+
### Harness adapter framework
24+
- Contract: `src/harness/interface.mjs`
25+
- Registry: `src/harness/registry.mjs`
26+
- Shared scanner helpers: `src/harness/scanner-framework.mjs`
27+
- Adapters:
28+
- Claude Code — `src/harness/adapters/claude.mjs`
29+
- Codex CLI — `src/harness/adapters/codex.mjs`
30+
- OpenCode — `src/harness/adapters/opencode.mjs`
31+
- Search: `validateAdapter`, `registerAdapter`, `listAdapters`, `scanHarness`
32+
- Tests: `tests/unit/test-codex-adapter.mjs`, `tests/unit/test-opencode-adapter.mjs`
33+
- Connects to:
34+
- Server — selects one adapter per request and exposes its capabilities
35+
- Scanner — adapter scanners return the shared inventory shape
36+
- Frontend — harness selector and capability-gated actions
37+
2338
### Scanner (discovery engine)
2439
- Entry: `src/scanner.mjs`
2540
- Search: `scanAll`, `scanScope`, `discoverProjects`, `CATEGORIES`
@@ -47,7 +62,7 @@
4762

4863
### HTTP server
4964
- Entry: `src/server.mjs`
50-
- Search: `createServer`, `/api/scan`, `/api/move`, `/api/delete`, `/api/context-budget`, `/api/security-scan`, `/api/file-content`, `/api/session-preview`, `/api/export`
65+
- Search: `createServer`, `/api/scan`, `/api/move`, `/api/delete`, `/api/save-markdown`, `/api/context-budget`, `/api/security-scan`, `/api/file-content`, `/api/session-preview`, `/api/export`
5166
- Tests: `tests/e2e/dashboard.spec.mjs`
5267
- Connects to:
5368
- Scanner — inventory via `scanAll()`
@@ -110,12 +125,12 @@
110125
- Entry: `src/session-distiller.mjs`
111126
- Search: `distillSession`, `distillBlocks`, `DISTILL_LIMITS`
112127
- Usage: `node src/session-distiller.mjs <session.jsonl>` or via `POST /api/session-distill` endpoint
113-
- Purpose: Extract conversation summary from full session JSONL, reduce size by ~90%, create backup + index
128+
- Purpose: Rebuild a compact independent Claude transcript with fresh UUIDs and a valid linear resume chain; create an exact backup + large-result index
114129
- Creates:
115130
- `{sessionId}/backup-{origId}.jsonl` — copy of original session
116131
- `{sessionId}/index.md` — distilled conversation with tool result summaries
117-
- Injects distiller context message into distilled session
118-
- Tests: `tests/unit/test-trim-images.mjs` (integration)
132+
- Appends backup/index metadata to the final conversation record
133+
- Tests: `tests/unit/test-session-distiller.mjs`
119134
- Connects to:
120135
- Server — `POST /api/session-distill` endpoint in `src/server.mjs`
121136
- Scanner — reads distill artifacts as session bundles
@@ -141,6 +156,8 @@
141156
- `test-path-correctness.mjs` — scope path decoding
142157
- `test-security-features.mjs` — security scanner patterns
143158
- `test-trim-images.mjs` — image block redaction in sessions
159+
- `test-codex-adapter.mjs` — Codex CLI inventory and scope behavior
160+
- `test-opencode-adapter.mjs` — OpenCode config, instruction, skill, MCP, and plugin discovery
144161

145162
### E2E tests
146163
- Path: `tests/e2e/`
@@ -161,5 +178,4 @@
161178

162179
## Known drift
163180
- Drag-and-drop: disabled in runtime, still mentioned in docs/tests
164-
- Version strings: stale in `server.json`, `.claude-plugin/plugin.json`, `src/mcp-server.mjs`
165181
- `history.mjs`: dormant, not called by any live code path

PRIVACY.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
11
# Privacy Policy
22

3-
**Cross-Code Organizer (CCO)** runs entirely on your local machine. Here's what that means:
3+
**Cross-Code Organizer (CCO)** runs on your local machine. Your harness files are not uploaded to CCO or collected as telemetry.
44

55
## Data Collection
66

7-
**None.** This tool does not collect, store, or transmit any data to external servers.
7+
**None.** CCO has no analytics service, user database, advertising tracker, or usage telemetry.
88

99
## What It Accesses
1010

11-
- Reads and writes files in your local `~/.claude/` directory
12-
- Runs a local HTTP server on `localhost` (default port 3847)
13-
- No network requests are made — everything stays on your machine
11+
- Reads selected config and customization files for supported harnesses, including `~/.claude/`, `~/.codex/`, `~/.config/opencode/`, and discovered project directories
12+
- Writes only when you use an editing, move, delete, restore, export, backup, or harness-control action
13+
- Runs an HTTP server bound to `127.0.0.1` (default port 3847) and rejects non-local browser requests
1414

1515
## Third-Party Services
1616

17-
- **SortableJS** is loaded via CDN (`cdn.jsdelivr.net`) for drag-and-drop functionality. This is the only external request made by the dashboard UI.
17+
- The dashboard loads **marked** from jsDelivr for Markdown rendering and fonts from Google Fonts.
18+
- CCO checks the npm registry for available package updates.
19+
- An MCP security audit connects to the MCP servers already configured in the selected harness so it can inspect their tool definitions.
20+
- Backup Center can copy harness files to a Git remote you configure. Scheduled backups repeat that sync at the selected interval until you disable the schedule.
1821
- No analytics, tracking, or telemetry of any kind.
1922

2023
## Summary
2124

22-
Your data never leaves your computer. This tool is a local file manager for your Claude Code configuration — nothing more.
25+
CCO does not upload the contents of your harness files. Network access is limited to the resources and user-triggered checks described above.
2326

2427
---
2528

26-
Last updated: 2026-03-19
29+
Last updated: 2026-09-11

README.es.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[![GitHub forks](https://img.shields.io/github/forks/mcpware/cross-code-organizer)](https://github.com/mcpware/cross-code-organizer/network/members)
99
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
1010
[![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
11-
[![Tests](https://img.shields.io/badge/tests-314%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
11+
[![Tests](https://img.shields.io/badge/tests-345%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
1212
[![Zero Telemetry](https://img.shields.io/badge/telemetry-zero-blue)](https://github.com/mcpware/cross-code-organizer)
1313
[![MCP Security](https://img.shields.io/badge/MCP-Security%20Scanner-red)](https://github.com/mcpware/cross-code-organizer)
1414
[English](README.md) | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [廣東話](README.zh-HK.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | Español | [Bahasa Indonesia](README.id.md) | [Italiano](README.it.md) | [Português](README.pt-BR.md) | [Türkçe](README.tr.md) | [Tiếng Việt](README.vi.md) | [ไทย](README.th.md)
@@ -27,7 +27,7 @@ CCO te da visibilidad cross-harness. Claude Code tiene memories, skills, agents,
2727
2828
![Cross-Code Organizer (CCO) Demo](docs/demo.gif)
2929

30-
<sub>314 tests (113 unit + 201 E2E) | Zero telemetry | Demo grabado por IA con [Pagecast](https://github.com/mcpware/pagecast)</sub>
30+
<sub>345 tests (137 unit + 208 E2E) | Zero telemetry | Demo grabado por IA con [Pagecast](https://github.com/mcpware/pagecast)</sub>
3131

3232
> 100+ estrellas en 5 días. Lo hizo alguien que dejó la carrera de CS a medias, descubrió 140 archivos de configuración invisibles controlando AI coding tools y decidió que nadie debería tener que hacer `cat` uno por uno. Primer proyecto open source — gracias a todos los que dieron estrella, probaron y reportaron issues.
3333

README.id.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[![GitHub forks](https://img.shields.io/github/forks/mcpware/cross-code-organizer)](https://github.com/mcpware/cross-code-organizer/network/members)
99
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
1010
[![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
11-
[![Tests](https://img.shields.io/badge/tests-314%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
11+
[![Tests](https://img.shields.io/badge/tests-345%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
1212
[![Zero Telemetry](https://img.shields.io/badge/telemetry-zero-blue)](https://github.com/mcpware/cross-code-organizer)
1313
[![MCP Security](https://img.shields.io/badge/MCP-Security%20Scanner-red)](https://github.com/mcpware/cross-code-organizer)
1414
[English](README.md) | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [廣東話](README.zh-HK.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Español](README.es.md) | Bahasa Indonesia | [Italiano](README.it.md) | [Português](README.pt-BR.md) | [Türkçe](README.tr.md) | [Tiếng Việt](README.vi.md) | [ไทย](README.th.md)
@@ -27,7 +27,7 @@ Rename alias buat search: project ini dulu dikenal sebagai **Claude Code Organiz
2727
2828
![Cross-Code Organizer (CCO) Demo](docs/demo.gif)
2929

30-
<sub>314 tests (113 unit + 201 E2E) | Zero telemetry | Demo direkam AI pake [Pagecast](https://github.com/mcpware/pagecast)</sub>
30+
<sub>345 tests (137 unit + 208 E2E) | Zero telemetry | Demo direkam AI pake [Pagecast](https://github.com/mcpware/pagecast)</sub>
3131

3232
> 100+ stars dalam 5 hari. Dibuat sama CS dropout yang nemu 140 file config invisible yang ngontrol Claude, dan mikir "masa harus `cat` satu-satu?" Project open source pertama — makasih buat yang udah star, test, dan report bug.
3333

README.it.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[![GitHub forks](https://img.shields.io/github/forks/mcpware/cross-code-organizer)](https://github.com/mcpware/cross-code-organizer/network/members)
99
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
1010
[![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
11-
[![Tests](https://img.shields.io/badge/tests-314%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
11+
[![Tests](https://img.shields.io/badge/tests-345%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
1212
[![Zero Telemetry](https://img.shields.io/badge/telemetry-zero-blue)](https://github.com/mcpware/cross-code-organizer)
1313
[![MCP Security](https://img.shields.io/badge/MCP-Security%20Scanner-red)](https://github.com/mcpware/cross-code-organizer)
1414
[English](README.md) | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [廣東話](README.zh-HK.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Español](README.es.md) | [Bahasa Indonesia](README.id.md) | Italiano | [Português](README.pt-BR.md) | [Türkçe](README.tr.md) | [Tiếng Việt](README.vi.md) | [ไทย](README.th.md)
@@ -27,7 +27,7 @@ CCO ti dà visibilità cross-harness. Claude Code ha memories, skill, agent, hoo
2727
2828
![Cross-Code Organizer (CCO) Demo](docs/demo.gif)
2929

30-
<sub>314 test (113 unit + 201 E2E) | Zero telemetry | Demo registrata da AI con [Pagecast](https://github.com/mcpware/pagecast)</sub>
30+
<sub>345 test (137 unit + 208 E2E) | Zero telemetry | Demo registrata da AI con [Pagecast](https://github.com/mcpware/pagecast)</sub>
3131

3232
> 100+ stelle in 5 giorni. L'ha fatto uno che ha mollato informatica a metà, dopo aver scoperto 140 file di config invisibili che pilotano AI coding tool. Nessuno dovrebbe fare `cat` su ognuno. Primo progetto open source — grazie a chi ha messo la stella, testato e aperto issue.
3333

README.ja.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[![GitHub forks](https://img.shields.io/github/forks/mcpware/cross-code-organizer)](https://github.com/mcpware/cross-code-organizer/network/members)
99
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
1010
[![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
11-
[![Tests](https://img.shields.io/badge/tests-314%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
11+
[![Tests](https://img.shields.io/badge/tests-345%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
1212
[![Zero Telemetry](https://img.shields.io/badge/telemetry-zero-blue)](https://github.com/mcpware/cross-code-organizer)
1313
[![MCP Security](https://img.shields.io/badge/MCP-Security%20Scanner-red)](https://github.com/mcpware/cross-code-organizer)
1414
[English](README.md) | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [廣東話](README.zh-HK.md) | 日本語 | [한국어](README.ko.md) | [Español](README.es.md) | [Bahasa Indonesia](README.id.md) | [Italiano](README.it.md) | [Português](README.pt-BR.md) | [Türkçe](README.tr.md) | [Tiếng Việt](README.vi.md) | [ไทย](README.th.md)
@@ -27,7 +27,7 @@ CCO は Claude Code の memories、skills、agents、hooks、context budget と
2727
2828
![Cross-Code Organizer (CCO) Demo](docs/demo.gif)
2929

30-
<sub>314 tests(113 unit + 201 E2E) | Zero telemetry | デモは AI が [Pagecast](https://github.com/mcpware/pagecast) で録画</sub>
30+
<sub>345 tests(137 unit + 208 E2E) | Zero telemetry | デモは AI が [Pagecast](https://github.com/mcpware/pagecast) で録画</sub>
3131

3232
> 5日で100 star 超え。CSを中退したエンジニアが、Claude の裏側で動いてる140個の設定ファイルを見つけて、「これ全部 `cat` で開くのはさすがにしんどい」と思って作った。初 OSS です。star、テスト、issue 報告してくれた方々、ほんとうにありがとうございます。
3333

README.ko.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[![GitHub forks](https://img.shields.io/github/forks/mcpware/cross-code-organizer)](https://github.com/mcpware/cross-code-organizer/network/members)
99
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
1010
[![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)
11-
[![Tests](https://img.shields.io/badge/tests-314%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
11+
[![Tests](https://img.shields.io/badge/tests-345%20passing-brightgreen)](https://github.com/mcpware/cross-code-organizer)
1212
[![Zero Telemetry](https://img.shields.io/badge/telemetry-zero-blue)](https://github.com/mcpware/cross-code-organizer)
1313
[![MCP Security](https://img.shields.io/badge/MCP-Security%20Scanner-red)](https://github.com/mcpware/cross-code-organizer)
1414
[English](README.md) | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [廣東話](README.zh-HK.md) | [日本語](README.ja.md) | 한국어 | [Español](README.es.md) | [Bahasa Indonesia](README.id.md) | [Italiano](README.it.md) | [Português](README.pt-BR.md) | [Türkçe](README.tr.md) | [Tiếng Việt](README.vi.md) | [ไทย](README.th.md)
@@ -27,7 +27,7 @@ CCO는 Claude Code의 memories, skills, agents, hooks, context budget과 Codex C
2727
2828
![Cross-Code Organizer (CCO) Demo](docs/demo.gif)
2929

30-
<sub>314 tests (113 unit + 201 E2E) | Zero telemetry | 데모는 AI가 [Pagecast](https://github.com/mcpware/pagecast)로 녹화</sub>
30+
<sub>345 tests (137 unit + 208 E2E) | Zero telemetry | 데모는 AI가 [Pagecast](https://github.com/mcpware/pagecast)로 녹화</sub>
3131

3232
> 5일 만에 스타 100개 넘었어요. CS 중퇴생이 Claude 뒤에서 돌아가는 설정 파일 140개를 발견하고, "이걸 하나하나 `cat` 쳐서 보라고?" 싶어서 만든 거예요. 첫 오픈소스인데 — 스타 찍어주시고, 테스트해주시고, 이슈 올려주신 분들 정말 감사해요.
3333

0 commit comments

Comments
 (0)