{"id":46032557,"url":"https://github.com/kibitzsh/kibitz","last_synced_at":"2026-03-05T08:00:49.947Z","repository":{"id":341045534,"uuid":"1167895178","full_name":"kibitzsh/kibitz","owner":"kibitzsh","description":"Real-time decoded feed of AI agent actions — monitor multiple Claude Code \u0026 Codex sessions, see exactly what each agent is doing, and coordinate swarms efficiently","archived":false,"fork":false,"pushed_at":"2026-03-02T00:41:59.000Z","size":1016,"stargazers_count":416,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-04T10:23:50.510Z","etag":null,"topics":["claude","claudecode","cli","codex","macos","vscode-extension","windows"],"latest_commit_sha":null,"homepage":"https://kibitz.sh","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/kibitzsh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/SUPPORT_MATRIX.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-26T19:56:53.000Z","updated_at":"2026-03-04T09:56:03.000Z","dependencies_parsed_at":"2026-03-02T05:00:51.295Z","dependency_job_id":null,"html_url":"https://github.com/kibitzsh/kibitz","commit_stats":null,"previous_names":["kibitzsh/kibitz"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/kibitzsh/kibitz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibitzsh%2Fkibitz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibitzsh%2Fkibitz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibitzsh%2Fkibitz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibitzsh%2Fkibitz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kibitzsh","download_url":"https://codeload.github.com/kibitzsh/kibitz/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibitzsh%2Fkibitz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30115662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T03:40:26.266Z","status":"ssl_error","status_checked_at":"2026-03-05T03:39:15.902Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["claude","claudecode","cli","codex","macos","vscode-extension","windows"],"created_at":"2026-03-01T04:10:46.896Z","updated_at":"2026-03-05T08:00:49.888Z","avatar_url":"https://github.com/kibitzsh.png","language":"TypeScript","readme":"# Kibitz\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![VS Code Marketplace](https://img.shields.io/visual-studio-marketplace/v/kibitzsh.kibitz)](https://marketplace.visualstudio.com/items?itemName=kibitzsh.kibitz)\n[![npm](https://img.shields.io/npm/v/@kibitzsh/kibitz)](https://www.npmjs.com/package/@kibitzsh/kibitz)\n[![Pages](https://github.com/kibitzsh/kibitz/actions/workflows/pages.yml/badge.svg)](https://github.com/kibitzsh/kibitz/actions/workflows/pages.yml)\n[![Website](https://img.shields.io/website?url=https%3A%2F%2Fkibitz.sh)](https://kibitz.sh)\n\nKibitz is a VS Code extension + CLI that watches Claude/Codex sessions, generates live commentary, and lets you dispatch prompts to existing or new sessions from one composer.\n\n## Install\n\n**VS Code Extension** — install from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=kibitzsh.kibitz) or search `Kibitz` in the Extensions panel.\n\n**CLI — Homebrew (macOS / Linux)**\n```bash\nbrew install kibitzsh/tap/kibitz\n```\n\n**CLI — npm**\n```bash\nnpm install -g @kibitzsh/kibitz\n```\n\n## Compatibility Matrix (Contract)\n\n| Platform | VS Code panel | Terminal CLI |\n| --- | --- | --- |\n| macOS | Supported | Supported |\n| Windows | Supported | Supported |\n| Linux | Best effort | Best effort |\n\n## Core Capabilities\n\n- Live commentary feed for Claude Code and Codex sessions.\n- Cross-session prompt dispatch:\n  - Existing active sessions.\n  - New session on current provider.\n- Slash controls in composer:\n  - `/help`, `/pause`, `/resume`, `/clear`, `/focus`, `/model`, `/preset`, `/interval`, `/update`\n  - session targeting like `/1`, `/2`\n- Provider-aware model handling.\n- Strict dispatch status events: `queued`, `started`, `sent`, `failed`.\n\n## Prompt Dispatching\n\nKibitz can send prompts to any active watched session (Claude or Codex), or start a new session on the current provider.\n\n### VS Code Panel\n\n- Target badges always include:\n  - `/1 New session (current provider)`\n  - `/2..N` existing active sessions from the watcher list\n- Starting a new terminal session is one step: select `/1` and send your prompt.\n- Select a target by:\n  - clicking a target badge\n  - typing `/N` (select only)\n  - typing `/N \u003cprompt\u003e` or `N/ \u003cprompt\u003e` (select + send)\n- Plain text (without target token) sends to the currently selected target.\n- Each send emits explicit status updates: `queued`, `started`, `sent`, `failed`.\n\n### Terminal CLI\n\n- Use `/sessions` to list active sessions with numeric indexes.\n- Set target with `/target \u003cindex|agent:sessionId|new-codex|new-claude\u003e`.\n- Set summary cadence with `/interval \u003c15s|30s|1m|5m|15m|1h\u003e`.\n- Check for updates with `/update`.\n- Starting a new terminal session is one command: `/target new-codex` (or `/target new-claude`), then send plain text.\n- After target selection, plain text sends to that target.\n- Dispatch status is printed for every send: `queued`, `started`, `sent`, `failed`.\n\n### Scope and Limits\n\n- Targeting is limited to active sessions in the watcher window (recent activity).\n- Multi-target broadcast in one send is not implemented.\n\n## Development Setup\n\n### Prerequisites\n\n- Node.js 20+\n- npm 10+\n- VS Code 1.85+\n- At least one provider CLI installed and authenticated:\n  - `codex` / `codex.cmd`\n  - `claude` / `claude.cmd`\n\n### Build\n\n```bash\nnpm ci\nnpm run build\n```\n\n### Deploy to Local VS Code/Cursor\n\n```bash\nnpm run deploy:vscode\n```\n\nThis copies `dist/` and `package.json` into your local extensions directory and replaces older Kibitz extension folders.\n\n### Run CLI\n\n```bash\nnpm run build\nnode dist/cli/index.js\n```\n\n## Testing\n\n```bash\nnpm run typecheck\nnpm run check:compat\nnpm run test:ui\nnpm run test:download-digest\nnpm run test:all\n```\n\nUseful targeted checks:\n\n```bash\nnpm run test:parsers\nnpm run check:session-names\nnpm run check:model-persistence\n```\n\n## Release Flow\n\n1. Local smoke and package:\n   - `npm run deploy:vscode` (local install to VS Code/Cursor)\n   - `npm run package` (builds `.vsix`)\n2. Full guarded release flow:\n   - `npm run cr`\n3. `npm run cr` performs checks/build, bumps version, publishes VS Code Marketplace + npm, verifies versions, updates Homebrew formula, and pushes tags.\n4. For GitHub auto-release on tag push, add repository secrets:\n   - `VSCE_PAT` (VS Marketplace publish PAT)\n   - `NPM_TOKEN` (npm publish token)\n   - `HOMEBREW_TAP_TOKEN` (GitHub token with write access to `kibitzsh/homebrew-kibitz`)\n5. For daily download digest email workflow (`.github/workflows/release-download-digest.yml`), add:\n   - `RESEND_API_KEY` (Resend API key)\n   - `HOMEBREW_TAP_TOKEN` (GitHub token with read access to `kibitzsh/homebrew-kibitz` traffic API)\n   - sender is fixed to `stats@kibitz.sh`\n   - recipient is fixed to `vasilytrofimchuk@gmail.com`\n\n## Daily Download Digest Emails\n\n- Workflow: `.github/workflows/release-download-digest.yml`\n- Script: `scripts/download-digest.js`\n- Schedule: 9:00 AM PT daily (with UTC cron + PT hour guard)\n- Sender: `stats@kibitz.sh`\n- Recipient: `vasilytrofimchuk@gmail.com`\n- Sources:\n  - VS Marketplace `downloadCount` for `kibitzsh.kibitz`\n  - GitHub Releases asset `download_count` for `kibitzsh/kibitz`\n  - npm range total downloads for `@kibitzsh/kibitz`\n  - Homebrew tap clone traffic proxy from `kibitzsh/homebrew-kibitz` (`/traffic/clones`)\n- State cache file: `.cache/download-digest/state.json`\n- Behavior:\n  - first run initializes baseline (no email),\n  - zero-delta days skip email,\n  - positive delta sends digest email.\n- Manual run:\n  - GitHub Actions → `Daily Download Digest` → `Run workflow`\n- Local smoke test (with real send):\n  ```bash\n  RESEND_API_KEY=... \\\n  RESEND_FROM_EMAIL=stats@kibitz.sh \\\n  ALERT_EMAIL_TO=vasilytrofimchuk@gmail.com \\\n  HOMEBREW_TAP_TOKEN=... \\\n  ENFORCE_9AM_PT=0 \\\n  DOWNLOAD_DIGEST_STATE_FILE=/tmp/kibitz-digest-test-state.json \\\n  node scripts/download-digest.js\n  ```\n\n## Distribution Channels\n\n## 1) VS Code Extension Marketplace\n\n- Create publisher in VS Marketplace (if not already created).\n- Create Azure DevOps PAT with Marketplace publish scopes.\n- Publish with `npm run publish:vscode` (`VSCE_PAT` required).\n- Recommended:\n  - publish stable versions to Marketplace,\n  - keep `.vsix` artifacts in GitHub Releases for manual install/rollback.\n\n## 2) OpenVSX (for Cursor/VSCodium ecosystems)\n\n- Publish the same extension package to OpenVSX.\n- Keep version parity with Marketplace.\n\n## 3) npm (CLI distribution)\n\n- Keep `bin.kibitz` pointing to `dist/cli/index.js`.\n- Publish package to npm.\n- Users can install globally and run `kibitz`.\n\n## 4) Homebrew\n\nTwo common paths:\n\n- Formula that installs from npm:\n  - wraps `npm install -g kibitz`.\n- Tap formula that downloads built tarball/binary and installs launcher.\n\nFor VS Code extensions specifically, Homebrew is optional and usually secondary to Marketplace/OpenVSX.\n\n## 5) GitHub Releases\n\n- Upload `.vsix` and changelog per version.\n- Add quick install instructions:\n  - `code --install-extension \u003cfile\u003e.vsix`\n\n## Recommended Distribution Stack\n\nFor most users, start with:\n\n1. VS Marketplace (primary VS Code install path)\n2. OpenVSX (secondary ecosystem coverage)\n3. npm (CLI users)\n4. GitHub Releases (`.vsix` artifact + release notes)\n\nAdd Homebrew only if your CLI install demand is high and you want one-command setup for macOS/Linux.\n\n## Docs\n\n- [Support matrix details](docs/SUPPORT_MATRIX.md)\n- [Compatibility release checklist](docs/COMPAT_CHECKLIST.md)\n\n## Legal\n\n- [License (MIT)](LICENSE)\n- [Privacy Policy](PRIVACY.md)\n- [Terms of Use](TERMS.md)\n\n## Cross-Platform Notes\n\nKibitz mirrors proven `room` patterns:\n\n- Login-shell PATH inheritance on macOS.\n- npm global prefix PATH enrichment on Windows.\n- Windows `.cmd` command mapping (`claude.cmd`, `codex.cmd`).\n- Platform-parameterized compatibility tests.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibitzsh%2Fkibitz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkibitzsh%2Fkibitz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibitzsh%2Fkibitz/lists"}