{"_id":"@ai-studio-3d/vyasa","name":"@ai-studio-3d/vyasa","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@ai-studio-3d/vyasa","version":"0.1.0","description":"Local analytics dashboard for AI coding agent sessions (Claude Code, Codex, Cursor) — waste detection, full-text search, replay, tagging, and cross-machine session transport","type":"module","bin":{"vyasa":"dist/cli.js"},"main":"./dist/cli.js","engines":{"node":">=20"},"scripts":{"prepublishOnly":"npm run schema:gen && npm run build && npm run build:web","build":"tsc","postbuild":"chmod +x dist/cli.js","dev":"concurrently -n backend,web -c blue,magenta \"tsc --watch\" \"vite\"","dev:backend":"tsc --watch","dev:web":"vite","test":"vitest run","test:watch":"vitest","lint":"eslint src tests","build:web":"vite build","typecheck:web":"tsc --project src/web/tsconfig.json --noEmit","typecheck":"tsc --noEmit && tsc --project src/web/tsconfig.json --noEmit","format":"prettier --write .","schema:gen":"ts-json-schema-generator --path src/core/schema/index.ts --type FoundationData --out data/schema/FoundationData.json && ts-json-schema-generator --path src/core/schema/index.ts --type WasteData --out data/schema/WasteData.json && ts-json-schema-generator --path src/core/schema/index.ts --type SearchData --out data/schema/SearchData.json && ts-json-schema-generator --path src/core/schema/index.ts --type SessionDetailData --out data/schema/SessionDetailData.json && ts-json-schema-generator --path src/core/schema/index.ts --type SessionsListData --out data/schema/SessionsListData.json && ts-json-schema-generator --path src/core/schema/index.ts --type AnalyticsData --out data/schema/AnalyticsData.json && ts-json-schema-generator --path src/core/schema/index.ts --type KitData --out data/schema/KitData.json"},"keywords":["claude","claude-code","codex","agent","analytics","session-replay"],"license":"MIT","devDependencies":{"@eslint/js":"^10.0.1","@tanstack/react-query":"^5.100.9","@tanstack/react-router":"^1.169.2","@types/better-sqlite3":"^7.6.13","@types/d3-shape":"^3.1.8","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1","@vitest/coverage-v8":"^4.1.5","concurrently":"^9.2.1","d3-shape":"^3.2.0","eslint":"^10.3.0","prettier":"^3.8.3","react":"^19.2.5","react-dom":"^19.2.5","ts-json-schema-generator":"^2.9.0","typescript":"^6.0.3","typescript-eslint":"^8.59.2","vite":"^8.0.10","vitest":"^4.1.5"},"dependencies":{"@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","better-sqlite3":"^12.9.0","chokidar":"^4.0.3","fastify":"^5.8.5","open":"^11.0.0"},"_id":"@ai-studio-3d/vyasa@0.1.0","gitHead":"e7d1cec908e0de0c461e6406b69a097e2b0cee6f","types":"./dist/cli.d.ts","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-7fJfnNqKNwM6dygK+7lqMDxrWuCH0UW8I/rW2uN5Vu2hfSZsERNp7k9wr+hCTl11Teg6Dm0+364sW+hZkzgNLw==","shasum":"057bc2af31c5faeb4f45d32b850f4a5e9d514c06","tarball":"https://registry.npmjs.org/@ai-studio-3d/vyasa/-/vyasa-0.1.0.tgz","fileCount":237,"unpackedSize":1075100,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCN1uMjTcG44mXCwzaOzKrLZ3aBYwDeNbmtltmW4wEiBAIgbzOIIwZYdmIPJC61+NnMhbw8L/SToplv53sx+uiKrrI="}]},"_npmUser":{"name":"directrix01","email":"abhinav@creditdharma.in"},"directories":{},"maintainers":[{"name":"directrix01","email":"abhinav@creditdharma.in"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vyasa_0.1.0_1782212777046_0.895068419448644"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-23T11:06:16.919Z","0.1.0":"2026-06-23T11:06:17.190Z","modified":"2026-06-23T11:06:17.717Z"},"maintainers":[{"name":"directrix01","email":"abhinav@creditdharma.in"}],"description":"Local analytics dashboard for AI coding agent sessions (Claude Code, Codex, Cursor) — waste detection, full-text search, replay, tagging, and cross-machine session transport","keywords":["claude","claude-code","codex","agent","analytics","session-replay"],"license":"MIT","readme":"# vyasa\n\nLocal analytics dashboard for AI coding agent sessions — waste detection, full-text search, session replay, and cross-machine session transport. Supports Claude Code and Codex.\n\n## Install\n\n```bash\nnpx vyasa\n```\n\nOr install globally:\n\n```bash\nnpm install -g vyasa\n```\n\n## Usage\n\n```bash\nvyasa                   # Index ~/.claude/projects + ~/.codex/sessions, open dashboard\nvyasa --rebuild         # Force full re-index before starting\nvyasa import <file>     # Import a .vyasa bundle from another machine\n```\n\n### Importing a session bundle\n\nIf a teammate sent you a `.vyasa` file (or you exported one from another machine):\n\n```bash\nnpx vyasa import session.vyasa                       # same-platform resume\nnpx vyasa import session.vyasa --to=codex            # translate Claude → Codex\nnpx vyasa import session.vyasa --to=claude-code      # translate Codex → Claude\n```\n\nThis places the JSONL in your local agent's storage (`~/.claude/projects/...` or `~/.codex/sessions/...`) and offers to resume it natively. Flags:\n\n- `--to=<platform>` — translate the session into the target platform's JSONL format before placement. Accepts `claude-code` or `codex`. Tool calls are translated where they map cleanly (Bash↔exec_command exact, Write/Edit↔apply_patch best-effort, unknown tools wrapped as no-op shell-echoes that preserve the original metadata). Thinking blocks (Claude) and reasoning items (Codex) are dropped — they don't translate.\n- `--yes` / `-y` — skip the resume prompt and resume immediately if the agent CLI is on PATH.\n- `--no-resume` — place the file but don't offer to resume.\n\n### Exporting / sharing a session\n\nIn the dashboard, open any session in Replay. Two buttons in the header:\n\n- **Hand off ↗** — downloads a `.vyasa` bundle. Recipient runs `npx vyasa import` (optionally `--to=<other-platform>` to translate) and resumes natively in their CLI.\n- **Continue elsewhere ⎘** — copies a primer prompt to your clipboard. Paste into any other agent (Codex, Cursor, ChatGPT, OpenCode, …) to warm-start with prior context. Lossy in a different way than `--to`: no tool-call transcript appears in the receiving CLI's UI, but the receiving agent gets a clean text summary.\n\n### `.vyasa` bundle format\n\nGzipped tar with three entries:\n\n```\nmanifest.json    metadata: platform, sessionId, projectDir, originalPath, jsonlSizeBytes, exportedAt, …\nsession.jsonl    verbatim copy of the source JSONL\nREADME.md        one-line install instructions for the recipient\n```\n\nPower users can `tar -xzf foo.vyasa` and place files manually if they prefer not to install vyasa.\n\n## Requirements\n\n- Node.js >= 20\n- Claude Code with sessions in `~/.claude/projects/`, or Codex with sessions in `~/.codex/sessions/`\n\n## Known limitations\n\n- **Subagent sessions** (when the same `sessionId` appears in multiple JSONL files under one parent session directory) collapse into a single row in the local DB; the exported bundle uses whichever file was ingested last. Resume still works because the recipient's CLI re-discovers the parent session from the file location.\n- The recipient's Claude Code shows imported sessions under the sender's encoded project directory name (which is the sender's absolute project path). This is functional but visually foreign on the recipient side.\n- The primer prompt (cross-tool warm-start) is intentionally lossy — it summarizes recent turns but does not carry the agent's internal state, prompt cache, or full tool-call output history.\n","readmeFilename":"README.md","_rev":"1-895be006e84d244caf955a4e45efa567"}