[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74865":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},74865,"companion","The-Vibe-Company\u002Fcompanion","The-Vibe-Company","Web & Mobile UI for Claude Code & Codex . Launch sessions, stream responses, approve tools.  All from your browser \u002F mobile","https:\u002F\u002Fthecompanion.sh",null,"TypeScript",2361,297,6,45,0,5,12,30,15,78.42,"MIT License",false,"main",true,[],"2026-06-12 04:01:16","\u003Cp align=\"center\">\n  \u003Cimg src=\"screenshot.png\" alt=\"The Companion\" width=\"100%\" \u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">The Companion\u003C\u002Fh1>\n\u003Cp align=\"center\">\u003Cstrong>Web UI for Claude Code and Codex sessions.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp align=\"center\">Run multiple agents, inspect every tool call, and gate risky actions with explicit approvals.\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fthe-companion\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fthe-companion.svg\" alt=\"npm version\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fthe-companion\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fthe-companion.svg\" alt=\"npm downloads\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg\" alt=\"MIT License\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n## Quick start\n\n**Requirements:** [Bun](https:\u002F\u002Fbun.sh) + [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code) and\u002For [Codex](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex) CLI.\n\n### Try it instantly\n\n```bash\nbunx the-companion\n```\n\nOpen [http:\u002F\u002Flocalhost:3456](http:\u002F\u002Flocalhost:3456).\n\n### Install globally\n\n```bash\nbun install -g the-companion\n\n# Register as a background service (launchd on macOS, systemd on Linux)\nthe-companion install\n\n# Start the service\nthe-companion start\n```\n\nOpen [http:\u002F\u002Flocalhost:3456](http:\u002F\u002Flocalhost:3456). The server runs in the background and survives reboots.\n\n## CLI commands\n\n| Command | Description |\n|---|---|\n| `the-companion` | Start server in foreground (default) |\n| `the-companion serve` | Start server in foreground (explicit) |\n| `the-companion install` | Register as a background service (launchd\u002Fsystemd) |\n| `the-companion start` | Start the background service |\n| `the-companion stop` | Stop the background service |\n| `the-companion restart` | Restart the background service |\n| `the-companion uninstall` | Remove the background service |\n| `the-companion status` | Show service status |\n| `the-companion logs` | Tail service log files |\n\n**Options:** `--port \u003Cn>` overrides the default port (3456).\n\n## Why this is useful\n- **Parallel sessions**: work on multiple tasks without juggling terminals.\n- **Full visibility**: see streaming output, tool calls, and tool results in one timeline.\n- **Permission control**: approve\u002Fdeny sensitive operations from the UI.\n- **Session recovery**: restore work after process\u002Fserver restarts.\n- **Dual-engine support**: designed for both Claude Code and Codex-backed flows.\n\n## Screenshots\n| Chat + tool timeline | Permission flow |\n|---|---|\n| \u003Cimg src=\"screenshot.png\" alt=\"Main workspace\" width=\"100%\" \u002F> | \u003Cimg src=\"web\u002Fdocs\u002Fscreenshots\u002Fnotification-section.png\" alt=\"Permission and notifications\" width=\"100%\" \u002F> |\n\n## Architecture (simple)\n```text\nBrowser (React)\n  \u003C-> ws:\u002F\u002Flocalhost:3456\u002Fws\u002Fbrowser\u002F:session\nCompanion server (Bun + Hono)\n  \u003C-> ws:\u002F\u002Flocalhost:3456\u002Fws\u002Fcli\u002F:session\nClaude Code \u002F Codex CLI\n```\n\nThe bridge uses the CLI `--sdk-url` websocket path and NDJSON events.\n\n## Authentication\n\nThe server auto-generates an auth token on first start, stored at `~\u002F.companion\u002Fauth.json`. You can also manage tokens manually:\n\n```bash\n# Show the current token (or auto-generate one)\ncd web && bun run generate-token\n\n# Force-regenerate a new token\ncd web && bun run generate-token --force\n```\n\nOr set a token via environment variable (takes priority over the file):\n\n```bash\nCOMPANION_AUTH_TOKEN=\"my-secret-token\" bunx the-companion\n```\n\n## Development\n```bash\nmake dev\n```\n\nManual:\n```bash\ncd web\nbun install\nbun run dev\n```\n\nChecks:\n```bash\ncd web\nbun run typecheck\nbun run test\n```\n\n## Preview \u002F Prerelease\n\nEvery push to `main` publishes a preview artifact:\n\n| Artifact | Tag \u002F dist-tag | Example |\n|---|---|---|\n| Docker image (moving) | `preview-main` | `docker.io\u002Fstangirard\u002Fthe-companion:preview-main` |\n| Docker image (immutable) | `preview-\u003Csha>` | `docker.io\u002Fstangirard\u002Fthe-companion:preview-abc1234...` |\n| npm package | `next` | `bunx the-companion@next` |\n\nPreview builds use a patch-core bump (e.g. `0.68.1-preview.*` when stable is `0.68.0`) so the in-app update checker can detect them as semver-ahead of the current stable release. They are **not** production-stable — use `latest` \u002F semver tags for stable releases.\n\n### Tracking prerelease updates in-app\n\nIn **Settings > Updates**, switch the update channel to **Prerelease** to receive preview builds. The default channel is **Stable** (semver releases only). Switching channels takes effect immediately on the next update check.\n\n## Docs\n- **Full documentation**: [`docs\u002F`](docs\u002F) (Mintlify — run `cd docs && mint dev` to preview locally)\n- Protocol reverse engineering: [`WEBSOCKET_PROTOCOL_REVERSED.md`](WEBSOCKET_PROTOCOL_REVERSED.md)\n- Contributor and architecture guide: [`CLAUDE.md`](CLAUDE.md)\n\n## License\nMIT\n","The Companion 是一个为 Claude Code 和 Codex 提供的网页及移动端用户界面，支持从浏览器或移动设备启动会话、流式响应和工具审批。项目采用 TypeScript 编写，具备多代理运行、工具调用检查与风险操作审批等核心功能，通过 WebSocket 实现前后端通信，确保了交互的实时性与安全性。适用于需要同时处理多个基于 Claude Code 或 Codex 的任务，并希望对敏感操作进行细粒度控制的场景，如开发测试环境下的代码生成与执行监控。MIT 许可证下开源，社区活跃，易于安装与使用。",2,"2026-06-11 03:51:10","high_star"]