{"id":51060052,"url":"https://github.com/vladar107/claudescope","last_synced_at":"2026-06-23T01:01:19.967Z","repository":{"id":362328025,"uuid":"1258442807","full_name":"vladar107/claudescope","owner":"vladar107","description":"A scope for your Ai coding-agent sessions","archived":false,"fork":false,"pushed_at":"2026-06-19T11:02:03.000Z","size":8943,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-19T11:24:38.384Z","etag":null,"topics":["analytics","claude","claude-code","codex","copilot","julie","opencode","pi","transcripts"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vladar107.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-03T15:26:41.000Z","updated_at":"2026-06-19T09:36:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vladar107/claudescope","commit_stats":null,"previous_names":["vladar107/claudescope"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/vladar107/claudescope","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladar107%2Fclaudescope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladar107%2Fclaudescope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladar107%2Fclaudescope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladar107%2Fclaudescope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vladar107","download_url":"https://codeload.github.com/vladar107/claudescope/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladar107%2Fclaudescope/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34671045,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","claude","claude-code","codex","copilot","julie","opencode","pi","transcripts"],"created_at":"2026-06-23T01:01:19.118Z","updated_at":"2026-06-23T01:01:19.958Z","avatar_url":"https://github.com/vladar107.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"docs/logo.svg\" alt=\"\" width=\"40\" height=\"40\" align=\"bottom\"\u003e Claudescope\n\n[![CI](https://github.com/vladar107/claudescope/actions/workflows/ci.yml/badge.svg)](https://github.com/vladar107/claudescope/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/@vladar107/claudescope)](https://www.npmjs.com/package/@vladar107/claudescope)\n[![node](https://img.shields.io/node/v/@vladar107/claudescope)](https://nodejs.org)\n[![license](https://img.shields.io/npm/l/@vladar107/claudescope)](./LICENSE)\n\n*A scope for your AI coding-agent sessions.*\n\nClaudescope is a **local, read-only** viewer that brings every AI coding-agent\ntranscript on your machine into one place — to browse, read, search, and analyze.\nSessions from every agent that worked in a directory are **merged under one\nproject**, each tagged with the agent that produced it. It runs entirely on your\nmachine and only ever reads your transcripts.\n\n## Supported agents\n\n| Agent | Transcripts read from |\n| ------------------------------------------------- | --------------------------------------------- |\n| [Claude Code](https://claude.com/claude-code)     | `~/.claude/projects/**/*.jsonl`               |\n| [OpenAI Codex](https://openai.com/codex)          | `~/.codex/sessions/**/rollout-*.jsonl`        |\n| [JetBrains Junie](https://www.jetbrains.com/junie/) | `~/.junie/sessions/session-*/events.jsonl`  |\n| [pi](https://pi.dev)                              | `~/.pi/agent/sessions/**/*.jsonl`             |\n| [opencode](https://opencode.ai)                   | `~/.local/share/opencode/opencode.db` (SQLite) |\n| [GitHub Copilot CLI](https://github.com/features/copilot) | `~/.copilot/session-state/**/events.jsonl` |\n\nEach source is optional — a directory that doesn't exist is simply skipped, so\nClaudescope works whether you use one agent or all six. Adding another is just\n[adding another connector](./CONTRIBUTING.md#adding-an-agent-connector).\n\n## What it can do\n\n- **Multi-agent** — Claude Code, Codex, Junie, pi, opencode, and GitHub Copilot CLI sessions side by side, each labeled with an **agent badge**. A project that several agents touched shows one card with all its agent tags; drill in and **filter the session list by agent**.\n- **Browse** every session grouped by project — titles, dates, message/tool counts, token totals, cost, git branch, PR links.\n- **Read** a session as a clean threaded conversation: markdown, syntax-highlighted code, collapsible thinking, paired tool calls + results, **syntax-highlighted red/green diffs** for edits, attachments, and sidechain/subagent turns. A built-in **find-in-session** bar (⌘/Ctrl+F) searches the whole transcript — including collapsed thinking, tool, and subagent content — auto-expanding and highlighting matches, with a user/assistant filter.\n- **Review changes** via a **Files changed** tab that aggregates every edit/write in the session by file, with per-file diffs and +/− counts (diffs load lazily per file).\n- **Export / share** a session to Markdown — download or copy it, with an optional toggle to **redact** home-dir paths and likely secrets.\n- **Memory** — browse each agent's long-lived **instruction files** (`CLAUDE.md`, `AGENTS.md`, …) and **agent-distilled per-project memory**, read live from each agent's home directory; Claude Code facts deep-link back to the session that produced them.\n- **Search** full-text across all sessions, all agents (DuckDB BM25), with highlighted snippets that deep-link to the exact message.\n- **Analyze** token usage and cost over time, by project, by model, and **by agent** — including cache-hit ratio.\n- **Light \u0026 dark themes** — follows your system appearance, with a manual toggle.\n\n\u003e **Privacy:** Everything runs locally on `127.0.0.1`. The app **never** writes to\n\u003e any agent's data — every source (`~/.claude`, `~/.codex`, `~/.junie`, `~/.pi`,\n\u003e `~/.copilot`, and opencode's database) is treated as strictly read-only. Its only persistent\n\u003e state lives in `~/.claudescope/` — a DuckDB index, a copy of the pricing file, and\n\u003e a cached pricing snapshot (`pricing.fetched.json`), all safe to delete anytime. The\n\u003e sole outbound requests are an optional daily check for a newer published version\n\u003e (`claudescope update`) and an optional daily pricing refresh (`claudescope pricing\n\u003e update`); nothing about your transcripts ever leaves your machine.\n\n---\n\n## Screenshots\n\n\u003e The screenshots below use **synthetic demo data** — every project name, path,\n\u003e and message is fabricated. `acme-web` is a multi-agent project worked by all\n\u003e six agents at once. They render light or dark to match your system.\n\n**Browse** — every project and its sessions at a glance, each tagged with the\nagents that worked in it: titles, dates, message \u0026 tool counts, token totals,\ncost, git branch, and PR links.\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/browse-dark.png\"\u003e\n  \u003cimg alt=\"Browse projects and sessions\" src=\"docs/screenshots/browse-light.png\"\u003e\n\u003c/picture\u003e\n\n**Read** — a session as a clean threaded conversation: markdown, collapsible\nthinking, **syntax-highlighted red/green diffs** for edits, nested **subagent**\nruns, per-message token chips, and a **find-in-session** bar (⌘/Ctrl+F) that\nauto-expands and highlights matches. The breadcrumb links back to the project's\nsession list; **Conversation / Files-changed** tabs and an **⤓ Export** (Markdown,\noptional redaction) sit in the header.\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/session-dark.png\"\u003e\n  \u003cimg alt=\"Session reader: breadcrumb, tabs, Export, the in-session finder, thinking, and a subagent run\" src=\"docs/screenshots/session-light.png\"\u003e\n\u003c/picture\u003e\n\n**Search** — full-text across every session and agent (DuckDB BM25) with\nhighlighted snippets and user/assistant filters; each result deep-links to the\nexact message.\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/search-dark.png\"\u003e\n  \u003cimg alt=\"Full-text search across sessions\" src=\"docs/screenshots/search-light.png\"\u003e\n\u003c/picture\u003e\n\n**Analyze** — token \u0026 cost analytics over time, by project, by model, and **by\nagent**, with a cache-read breakdown. Click a chart legend to toggle a series.\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/analytics-dark.png\"\u003e\n  \u003cimg alt=\"Token and cost analytics dashboard\" src=\"docs/screenshots/analytics-light.png\"\u003e\n\u003c/picture\u003e\n\n**Remember** — every agent's memory in one place: global instruction files\n(`CLAUDE.md`, `AGENTS.md`, Copilot instructions) and Claude Code's\n**agent-distilled per-project facts**, each with provenance and category. Read\nlive from every agent's home dir — never indexed — and Claude facts deep-link\nback to the session that produced them.\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/memory-dark.png\"\u003e\n  \u003cimg alt=\"Memory: each agent's global instruction files and distilled per-project facts in one place\" src=\"docs/screenshots/memory-light.png\"\u003e\n\u003c/picture\u003e\n\n---\n\n## Quick start\n\nInstall from any one of three channels — all wrap the same package. However you\ninstall it, `claudescope` serves the whole app (UI + API) from a single port\n(**http://localhost:4317** by default), runs in the **background**, and opens\nyour browser. Run it once and forget it; new sessions appear automatically.\n\n### npm (recommended)\n\n**Prerequisite:** [Node.js](https://nodejs.org) **22.12 or newer** (`node -v`).\n\n```bash\nnpm install -g @vladar107/claudescope\nclaudescope            # starts the app in the background and opens your browser\n```\n\nNo global install? `npx @vladar107/claudescope` runs the published CLI once\nwithout installing it.\n\n### Homebrew (macOS / Linux)\n\n```bash\nbrew tap vladar107/tap\nbrew install claudescope\nclaudescope\n```\n\n### Nix (any platform)\n\n```bash\nnix run github:vladar107/claudescope               # run without installing\nnix profile install github:vladar107/claudescope   # or add it to your profile\n```\n\n### Commands\n\n```bash\nclaudescope            # = claudescope start\nclaudescope start      # start in the background (idempotent), open the browser\nclaudescope stop       # stop the background server\nclaudescope restart    # restart it\nclaudescope status     # is it running? is an update available?\nclaudescope open       # open the running app in your browser\nclaudescope logs -f    # tail the server log\nclaudescope update          # upgrade to the latest published version and restart\nclaudescope pricing update  # fetch current model prices (LiteLLM) into the local rate table\nclaudescope help            # full usage\n\n# options: --port \u003cn\u003e   (default 4317, or $PORT)\n#          --no-open    (don't open the browser on start)\n```\n\nUpdating later is just `claudescope update` (or `npm i -g @vladar107/claudescope@latest`).\n\n### Run from source\n\n```bash\ngit clone https://github.com/vladar107/claudescope \u0026\u0026 cd claudescope\nnpm install      # installs all workspace dependencies\nnpm start        # builds on first run, then serves the app in the foreground\n```\n\n`npm start` runs in the foreground (`Ctrl-C` to stop). For the watch-mode dev\nloop and how to contribute, see [`CONTRIBUTING.md`](./CONTRIBUTING.md).\n\n---\n\n## Configuration\n\nAll optional — set via environment variables.\n\n| Variable              | Default                | Description                                                            |\n| --------------------- | ---------------------- | ---------------------------------------------------------------------- |\n| `PORT`                | `4317`                 | Port the app listens on (or `--port \u003cn\u003e`).                             |\n| `CLAUDE_PROJECTS_DIR` | `~/.claude/projects`   | Where to read Claude Code transcripts from. A leading `~` is expanded. |\n| `CODEX_SESSIONS_DIR`  | `~/.codex/sessions`    | Where to read OpenAI Codex transcripts from. A leading `~` is expanded.|\n| `JUNIE_SESSIONS_DIR`  | `~/.junie/sessions`    | Where to read JetBrains Junie transcripts from. A leading `~` is expanded.|\n| `PI_SESSIONS_DIR`     | `~/.pi/agent/sessions` | Where to read pi transcripts from. A leading `~` is expanded.          |\n| `OPENCODE_DATA_DIR`   | `~/.local/share/opencode` | Dir holding opencode's `opencode.db` (read-only). Honors `$XDG_DATA_HOME`; override the DB path directly with `OPENCODE_DB_PATH`. |\n| `COPILOT_SESSIONS_DIR`| `~/.copilot/session-state` | Where to read GitHub Copilot CLI transcripts from. A leading `~` is expanded. |\n| `CLAUDESCOPE_HOME`    | `~/.claudescope`       | Where the app keeps its own state (index, pricing copy, logs, PID).    |\n| `REINDEX_INTERVAL_MS` | `15000`                | How often to auto-pick-up new/updated sessions. Set `0` to disable.    |\n\nEach agent source is optional — if a directory doesn't exist it's simply skipped,\nso the app works whether you use one agent or all six.\n\nExamples:\n\n```bash\nclaudescope --port 8080                                  # custom port\nCLAUDE_PROJECTS_DIR=/path/to/exported/projects claudescope  # view someone else's transcripts\nCODEX_SESSIONS_DIR=/path/to/codex/sessions claudescope   # point at Codex sessions elsewhere\nJUNIE_SESSIONS_DIR=/path/to/junie/sessions claudescope   # point at Junie sessions elsewhere\nPI_SESSIONS_DIR=/path/to/pi/sessions claudescope         # point at pi sessions elsewhere\nOPENCODE_DATA_DIR=/path/to/opencode claudescope          # point at an opencode data dir elsewhere\nCOPILOT_SESSIONS_DIR=/path/to/copilot/session-state claudescope  # point at Copilot CLI sessions elsewhere\nclaudescope --no-open                                    # don't pop a browser tab\n```\n\nThe startup banner prints the resolved URL and the source directories in use, so\nyou can always confirm what it's reading.\n\n### Cost methodology\n\nCost is an **estimate computed locally** from token usage — Claudescope has no\naccess to your real billing. For every **assistant** event (the events that carry\n`usage`), it sums each token type times its per-million-token rate:\n\n```\ncost = ( input_tokens          × input_rate\n       + output_tokens         × output_rate\n       + cache_creation_tokens × cache_write_rate\n       + cache_read_tokens     × cache_read_rate ) ÷ 1,000,000\n```\n\nThe per-event cost is computed once at index time and stored, so analytics is\njust a `SUM` over events; a project/session total is the sum of its events.\n\nRates are resolved in a layered lookup:\n\n1. **Fetched exact id** — `~/.claudescope/pricing.fetched.json` (auto-refreshed\n   daily from [LiteLLM's community price table](https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json),\n   covering Anthropic, OpenAI, Gemini, xAI, Mistral, and DeepSeek models).\n2. **Local exact id** — `~/.claudescope/pricing.json` (seeded on first run from\n   the shipped default; user-editable; takes precedence over the fetched snapshot\n   for any id it defines explicitly).\n3. **Family match** — `opus` / `sonnet` / `haiku` / `gemini` / `gpt` substring in\n   the model id → the matching family rate from `pricing.json`.\n4. **Default** — the `default` entry in `pricing.json`.\n\nThe family step means version- or date-suffixed ids (e.g. `claude-haiku-4-5-20251001`,\n`gpt-5.x-codex`, `gemini-2.5-flash`) still price correctly. `pricing.json` is the\nuser-editable fallback and override layer for families and the default rate; the\nfetched snapshot provides exact per-model rates for all known models.\n\nShipped fallback rates (USD per 1M tokens):\n\n| family / model      | input | output | cache write (5m) | cache read |\n| ------------------- | ----- | ------ | ---------------- | ---------- |\n| Opus 4.5–4.8        | $5    | $25    | $6.25            | $0.50      |\n| Opus 4.1 / 4        | $15   | $75    | $18.75           | $1.50      |\n| Sonnet 4.x          | $3    | $15    | $3.75            | $0.30      |\n| Haiku 4.5           | $1    | $5     | $1.25            | $0.10      |\n| Gemini 2.5 Pro-class| $1.25 | $10    | —                | $0.31      |\n| GPT-5               | $0.63 | $5     | —                | $0.13      |\n| GPT-5.4             | $2.50 | $15    | —                | $0.50      |\n| GPT-5.5             | $5    | $30    | —                | $0.50      |\n| `\u003csynthetic\u003e`       | $0    | $0     | $0               | $0         |\n\n- Rates **auto-refresh daily** in the background while the server runs. Run\n  `claudescope pricing update` to force a refresh at any time. New rates apply\n  to newly indexed events; existing indexed costs are unchanged.\n- Edit `~/.claudescope/pricing.json` to override families, the default rate, or\n  pin specific model prices. Re-index (`POST /api/reindex` or `claudescope\n  restart`) to recompute stored costs at the new rates.\n- `pricing.json` carries a `schemaVersion`. When an upgrade ships a newer default\n  (new families/models or a changed default rate), the app **reconciles your copy\n  on startup**: it backs the old file up to `pricing.json.bak`, adds the new\n  shipped keys, and **keeps every value you customized**. Your edits are never\n  discarded; a copy you've left current is not rewritten.\n- The `opus`/`sonnet`/`haiku`/`gemini`/`gpt` family rules use **current**\n  pricing; the deprecated Opus 4 / 4.1 ($15/$75) and specific GPT-5 versions are\n  pinned via exact `models` entries. Add an exact entry to override any model.\n\n\u003e **Caveat:** these are **list-price estimates** — they ignore any discounts,\n\u003e service tier, or batch pricing, and the cache-write rate assumes the 5-minute\n\u003e TTL. Treat totals as approximate and best for *relative* comparison\n\u003e (project vs project, day vs day), not as an invoice.\n\nThe **\"Input from cache\"** stat is a separate metric:\n`cache_read ÷ (cache_read + cache_creation + input)` — the share of prompt tokens\nserved from cache (legitimately high for Claude Code, which re-reads cached context each turn).\n\n---\n\n## Usage notes\n\n- **First launch** builds the app and indexes your transcripts in the background\n  (a few seconds). The browse/search/analytics views populate once indexing\n  finishes — `/api/health` reports `{\"ready\":true}` when it's done.\n- **New sessions appear automatically.** The app re-scans on an interval\n  (`REINDEX_INTERVAL_MS`, default 15s) and incrementally picks up new or updated\n  transcripts — including the session you're currently running — without a\n  restart. In an open session, hit **⟳ Refresh** (or ⌘R / Ctrl+R) to pull the\n  latest messages in place without losing your scroll position. Each scan is\n  near-free when nothing changed; you can also force one with `POST /api/reindex`.\n- **Thinking blocks** appear empty because Claude Code stores only a signature\n  (and Codex only encrypted reasoning), not the plaintext — the app notes this\n  explicitly. (Not a bug.)\n- **Codex sessions have no stored title**, so the title falls back to the first\n  user message. The same is true for **pi** sessions.\n- **Junie sessions render differently.** Junie records an event-sourced UI stream\n  rather than a chat log, so a session reads as tool / terminal / file blocks plus\n  a final result — there's no assistant prose or thinking to show. Pasted\n  screenshots are surfaced inline. Older Junie sessions don't record a working\n  directory and group under an **\"(unknown — Junie)\"** project.\n- **pi reasoning renders in full.** Unlike Claude Code / Codex, pi stores the\n  plaintext of its thinking blocks, so they show real reasoning rather than an\n  empty placeholder. pi keeps no memory in its home dir, so it contributes nothing\n  to the memory viewer.\n- **opencode is SQLite-backed.** opencode stores all sessions in one read-only\n  SQLite database (`opencode.db`), not per-session files; Claudescope reads it via\n  Node's built-in `node:sqlite`. Its reasoning renders in full (plaintext), its\n  file edits (made via `apply_patch`) show in the **Files changed** tab and as\n  diffs, and pasted screenshots embed. Like pi, it contributes no memory.\n- **GitHub Copilot CLI records an event-sourced stream**\n  (`~/.copilot/session-state/\u003cid\u003e/events.jsonl`). Cost is **session-level** — only\n  a cleanly-closed session reports tokens, so a crashed or still-running one shows\n  no cost. Reasoning is encrypted (renders empty, like Codex). File edits show in\n  the **Files changed** tab; a denied edit is shown but doesn't count as a change.\n  Pasted screenshots embed when screenshot-saving is enabled (otherwise a marker\n  remains). Its global `copilot-instructions.md` appears in the memory viewer; it\n  keeps no per-project memory.\n\n---\n\n## Contributing \u0026 development\n\nClaudescope is open source and contributions are welcome. How it works (the\nDuckDB index, the per-agent **connectors**, and the threading parser), the local\ndev loop, the test suite, **how to add a connector for another agent**, and the\nrelease process all live in [`CONTRIBUTING.md`](./CONTRIBUTING.md), with\n[`CLAUDE.md`](./CLAUDE.md) as the deeper architectural source of truth. To run a\nlocal copy, see [Run from source](#run-from-source) above.\n\n---\n\n## Security \u0026 privacy\n\nClaudescope runs entirely on your machine. It treats every agent source\n(`~/.claude`, `~/.codex`, `~/.junie`, `~/.pi`, `~/.copilot`, and opencode's database) as\n**read-only**, **binds to `127.0.0.1` only**, and sends **no telemetry**. Its only\noutbound requests are a cached npm-registry version check for the update notice\nand a daily fetch of public model pricing rates from LiteLLM (disable with\n`PRICING_REFRESH_INTERVAL_MS=0`). See\n[`SECURITY.md`](./SECURITY.md) for the full breakdown of filesystem, network,\nshell, and self-update behavior — and how to report a vulnerability.\n\n---\n\n## Troubleshooting\n\n- **App is empty / \"sessions directory not found\"** — none of `CLAUDE_PROJECTS_DIR`,\n  `CODEX_SESSIONS_DIR`, `JUNIE_SESSIONS_DIR`, `PI_SESSIONS_DIR`, `OPENCODE_DATA_DIR`, or `COPILOT_SESSIONS_DIR` points at real transcripts. Check\n  the banner and set them correctly. Any source can be absent; only the present\n  ones are indexed.\n- **`Error: listen EADDRINUSE :4317`** — the port is taken; run `claudescope --port \u003cn\u003e`.\n- **Node version errors** — you need Node ≥ 22.12 (`node -v`).\n- **Stale or wrong data** — delete `~/.claudescope/index.duckdb*` and\n  `claudescope restart` to rebuild the index from scratch.\n- **`@duckdb/node-api` install issues** — it ships prebuilt native binaries;\n  re-run `npm install` on a supported platform (macOS, Linux, Windows x64/arm64).\n\n---\n\n## License\n\n[MIT](./LICENSE) © Vladislav Ramazaev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladar107%2Fclaudescope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvladar107%2Fclaudescope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladar107%2Fclaudescope/lists"}