Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
164 commits
Select commit Hold shift + click to select a range
b5eb2a8
Merge pull request #6 from jeffusion/support-iterm2
bfly123 Dec 19, 2025
006f046
Merge pull request #4 from yongbo2046/fix/bridge-stability
bfly123 Dec 19, 2025
bd044a2
Revert "fix: resolve bridge process crash and message forwarding issues"
bfly123 Dec 19, 2025
d300c8b
fix: bridge stability (macOS/tmux)
bfly123 Dec 19, 2025
f8cf9cc
fix(windows): add Windows compatibility fixes
bfly123 Dec 19, 2025
c285652
feat(windows): add BackendEnv config and install confirmation
bfly123 Dec 19, 2025
270188f
fix: add session file permission check and friendly error messages
bfly123 Dec 19, 2025
cae1d33
docs: add WezTerm installation note for Windows users
bfly123 Dec 19, 2025
4324fe3
fix(wezterm): improve send_text reliability for enter key
bfly123 Dec 20, 2025
2e92e89
feat(commands): update cask-w/gask-w to use background mode
bfly123 Dec 20, 2025
e6037e7
feat(install): use marker block for CLAUDE.md config
bfly123 Dec 20, 2025
ccedf85
fix(uninstall): clean commands from all possible locations
bfly123 Dec 20, 2025
36b9f4b
refactor(i18n): convert project to English
bfly123 Dec 20, 2025
eed93b4
fix(gemini): verify actual session files before resume
bfly123 Dec 20, 2025
a7e482c
fix(install.ps1): replace emoji with ASCII for PowerShell compatibility
bfly123 Dec 20, 2025
f016050
feat(i18n): add multi-language support with CCB_LANG
bfly123 Dec 20, 2025
6417a52
fix(cask-w): add flush=True and early startup signal for background mode
bfly123 Dec 20, 2025
50faee5
feat(fast-path): add /cask-w and /gask-w to direct triggers
bfly123 Dec 20, 2025
b5e7674
perf(cask-w): optimize startup with lazy import and lazy init
bfly123 Dec 20, 2025
de73bef
perf(cask-w,gask-w): optimize startup with lazy import and lazy init
bfly123 Dec 20, 2025
a8db8d3
fix(cask-w,gask-w): stop after sending, wait for user input
bfly123 Dec 20, 2025
d9ab3ac
feat(cask-w,gask-w): non-blocking send with background reply wait
bfly123 Dec 20, 2025
5fa59ce
fix(cask-w,gask-w): use double fork to fully detach background process
bfly123 Dec 20, 2025
d77be60
refactor(cask-w,gask-w): pure sync mode with Claude Code background task
bfly123 Dec 20, 2025
0f9e1dd
fix(gask-w): align with cask-w implementation
bfly123 Dec 21, 2025
aec6827
fix(gemini_comm): prevent returning stale messages on JSON parse failure
bfly123 Dec 21, 2025
8350b67
fix(codex_comm): use binary mode for consistent byte offset handling
bfly123 Dec 21, 2025
6d9da2f
fix(install.ps1): add UTF-8 BOM and encoding setup for PS5.1 compatib…
bfly123 Dec 21, 2025
fab9fb3
release: bump version to 2.2
bfly123 Dec 21, 2025
24a6645
fix(ccb): ensure -r restore reads cwd/.codex-session with correct enc…
bfly123 Dec 21, 2025
758ceae
fix(install.ps1): create .cmd wrappers and fix shebang for Windows
bfly123 Dec 21, 2025
c35c096
fix(cask-w,gask-w): move setup_windows_encoding to module level
bfly123 Dec 21, 2025
76da62b
fix(ccb): normalize paths for cross-platform session restore
bfly123 Dec 21, 2025
e1bcc53
fix(ccb): add work_dir validation for codex_session_id to prevent cro…
bfly123 Dec 21, 2025
b7713a4
fix(ccb): improve Linux path matching to reduce false negatives
bfly123 Dec 21, 2025
201809c
fix(cpend): improve Windows compatibility and prevent cross-project r…
bfly123 Dec 21, 2025
4195c89
fix(comm): prevent missing replies during log file transitions
bfly123 Dec 21, 2025
81fb84e
feat(update): show version upgrade info with commit hash and date
bfly123 Dec 21, 2025
e2e67c4
fix(update): read version even without git repo
bfly123 Dec 21, 2025
36a6dae
feat(update): embed git commit and date in ccb during install
bfly123 Dec 21, 2025
e665126
fix(update): remove inline comments from GIT_COMMIT/GIT_DATE
bfly123 Dec 21, 2025
5454ddd
feat(install): get git info from GitHub API for tarball installs
bfly123 Dec 21, 2025
66dc7c3
fix(gask-w): return last gemini message instead of first
bfly123 Dec 21, 2025
00a43eb
fix(session): remove session_id_filter to fix session confusion
bfly123 Dec 21, 2025
39f037c
fix(skills): update cask-w/gask-w to auto-cat on bash-notification
bfly123 Dec 21, 2025
bdf7b1b
feat(ccb): add -v/--version command to show version and update status
bfly123 Dec 22, 2025
e1eebcf
fix(install): Bash 3.2 heredoc compatibility for macOS
bfly123 Dec 22, 2025
bfcb1ad
docs: add AGPL-3.0 license with bilingual explanation
bfly123 Dec 22, 2025
d213e10
fix(install): handle mktemp failure with set -u
bfly123 Dec 22, 2025
bc752f1
refactor(ccb): use claude --continue instead of --resume
bfly123 Dec 22, 2025
9ba7cc4
fix(ccb): check history before using claude --continue
bfly123 Dec 22, 2025
5dbf733
fix(ccb): always scan session logs for latest Codex session
bfly123 Dec 22, 2025
deae299
fix(windows): fix Enter key and update command issues
bfly123 Dec 23, 2025
5f99936
fix(wezterm): support multiline text with dual-path strategy
bfly123 Dec 23, 2025
f3b6caa
feat(cpend/gpend): add N parameter to fetch recent conversations
bfly123 Dec 23, 2025
9e44c7e
refactor(cask): simplify command semantics and decouple cpend
bfly123 Dec 23, 2025
4181952
refactor(install): sync collaboration rules between ps1 and sh
bfly123 Dec 23, 2025
4268b21
fix(cpend): always check for newer session logs
bfly123 Dec 23, 2025
fe91e90
docs: update README v2.3 with bilingual support
bfly123 Dec 24, 2025
7d10634
docs: add AI Poker Night example to Usage section
bfly123 Dec 24, 2025
30cc741
docs: add Neovim integration example to README
bfly123 Dec 24, 2025
712d869
fix(install): auto-configure PATH for macOS/Linux
bfly123 Dec 24, 2025
30653a5
chore: ignore compare_with_mcp directory
bfly123 Dec 24, 2025
ac5de9f
docs: add Windows installation notes for WezTerm and environment
bfly123 Dec 24, 2025
da35677
docs: restructure install steps with WezTerm first
bfly123 Dec 24, 2025
a64aa60
docs: move Editor Integration section before Requirements
bfly123 Dec 24, 2025
e760ce9
fix(install): use ProcessStartInfo for Python version detection
masfrank Dec 24, 2025
baf379d
Merge pull request #10 from masfrank/main
bfly123 Dec 25, 2025
bb97683
Fix log readers project scoping
Dec 26, 2025
65b354f
docs: update wechat image to png format
bfly123 Dec 26, 2025
a1b619d
Merge pull request #11 from HamsteRider-m/main
bfly123 Dec 26, 2025
7ba927a
refactor: simplify ccb command selection rules
bfly123 Dec 26, 2025
a124c7b
docs: emphasize END turn requirement in cask/gask
bfly123 Dec 27, 2025
b303f1a
docs: add Windows installation guide (WSL vs native)
bfly123 Dec 27, 2025
53ee792
fix: remove incorrect WSL1 limitation messages
bfly123 Dec 27, 2025
35080c4
docs: add Windows installation guide to English README
bfly123 Dec 27, 2025
6d88c12
feat: add CCB_END_TURN sentinel for stable turn ending
bfly123 Dec 27, 2025
c227a28
fix: output CCB_END_TURN immediately after sending message
bfly123 Dec 28, 2025
a3ed2b9
fix: simplify CCB_END_TURN output to avoid parsing errors
bfly123 Dec 28, 2025
360fad7
fix: replace emoji with text in bin scripts to avoid parsing errors
bfly123 Dec 28, 2025
fbc4d81
fix: remove emoji from cping and gping
bfly123 Dec 28, 2025
c55d3a2
fix: improve cpend/gpend stability and enforce background mode for ca…
bfly123 Dec 28, 2025
741b7b6
chore: replace emoji with plain text in install.sh
bfly123 Dec 28, 2025
a5b0883
fix: harden 741b background checks and session selection
bfly123 Dec 28, 2025
3f1db8a
fix: avoid blocking when cask/gask run without background
bfly123 Dec 28, 2025
20e93f7
fix: strengthen run_in_background requirement in cask/gask skills
bfly123 Dec 28, 2025
2237b4c
fix: enforce strict background mode for cask/gask in Claude Code
bfly123 Dec 28, 2025
5712010
fix: detect Unix socket for Claude Code background mode
bfly123 Dec 28, 2025
f33ef3c
docs: add macOS installation troubleshooting guide
bfly123 Dec 29, 2025
f7510cc
docs: separate Linux/macOS install sections, add macOS troubleshooting
bfly123 Dec 29, 2025
20d3b08
docs: warn WSL users not to install as root
bfly123 Dec 29, 2025
e12f5b0
fix: add FIFO/pipe detection for Windows background mode
bfly123 Dec 30, 2025
972a26b
fix: refuse to run install.sh as root/sudo
bfly123 Dec 30, 2025
ff840e7
docs: update README to v2.3
bfly123 Dec 30, 2025
56c772c
docs: use shields.io badges for slogan display
bfly123 Dec 30, 2025
3b1ea11
chore: simplify CCB_CONFIG in install.sh
bfly123 Dec 30, 2025
07ea129
fix: prevent Claude from proactively using cpend/cask-w
bfly123 Dec 30, 2025
73c8675
fix: auto-update .gemini-session with actual session path in gpend
bfly123 Dec 30, 2025
1337663
fix: improve Windows Enter key reliability in WezTerm
bfly123 Dec 30, 2025
877d5f3
fix: improve Windows Enter key reliability in WezTerm
bfly123 Dec 30, 2025
91c3213
docs: add contact info (email, wechat) to README_zh
bfly123 Dec 31, 2025
390b573
fix: correct wechat image extension from .png to .jpg
bfly123 Dec 31, 2025
06fcc91
docs: add contact info to English README
bfly123 Dec 31, 2025
711da25
fix: avoid explicit stdio passing on Windows to prevent EBADF
bfly123 Dec 31, 2025
4cff4a5
fix: sync codex_session_path in _get_latest_codex_session_id()
bfly123 Jan 1, 2026
5a7c91c
feat: add CCA (Claude Code Autoflow) integration
bfly123 Jan 1, 2026
3a5c0fb
feat: convert cask/gask to Claude Skills (test version)
bfly123 Jan 2, 2026
4e6ef88
chore: remove old WeChat QR code (figure.png)
bfly123 Jan 2, 2026
b296305
chore: update WeChat QR code to weixin.png
bfly123 Jan 2, 2026
6afc286
feat: add OpenCode integration and update codex auto mode
bfly123 Jan 2, 2026
4d9475a
feat: add -a and -r parameter support for opencode
bfly123 Jan 3, 2026
c251228
refactor: remove CCB_END_TURN sentinel and optimize CLAUDE.md prompts
bfly123 Jan 4, 2026
5c8c492
fix: 修复 WSL 环境下 WezTerm 启动时的 chdir 错误
MrSeven590 Jan 4, 2026
bdd2328
fix: opend/oask correctly detect OpenCode project ID using git root c…
bfly123 Jan 4, 2026
67a375e
chore: add executable permissions to OpenCode scripts
bfly123 Jan 4, 2026
05d6781
feat: add oask skill for OpenCode async delegation
bfly123 Jan 4, 2026
6379c9e
chore: ignore .opencode-session
bfly123 Jan 4, 2026
07bd74a
refactor: remove explicit cask/gask/oask commands, use skills instead
bfly123 Jan 4, 2026
8a11a39
feat: support ccb up opencode -a highest permission mode
bfly123 Jan 4, 2026
f862d1b
fix: prevent backtick command substitution by using stdin/heredoc
bfly123 Jan 4, 2026
b9d286d
feat: install Codex oask skill for OpenCode delegation
bfly123 Jan 4, 2026
b4564fe
fix: improve OpenCode storage/project detection on Windows and WSL
bfly123 Jan 4, 2026
4041ef4
fix: make OpenCode path/project detection more robust on Windows
bfly123 Jan 4, 2026
04e3651
feat: wait for COMPLETION_MARKER before returning reply
bfly123 Jan 4, 2026
4b5d7a7
fix: only check text parts for completion marker, avoid reasoning fal…
bfly123 Jan 5, 2026
6358de0
Merge pull request #21 from MrSeven590/fix/wezterm-wsl-chdir-error
bfly123 Jan 5, 2026
e7f4458
refactor: simplify completion detection
bfly123 Jan 5, 2026
a42dbf3
fix: handle race condition when OpenCode reply exists before capture_…
bfly123 Jan 5, 2026
aa8dcb7
fix: race condition in gask/cask - pre-check for existing messages
bfly123 Jan 5, 2026
d1ea4f0
refactor: optimize skill files, extract common patterns to shared doc
bfly123 Jan 6, 2026
94fad95
refactor: simplify cping.md to match oping/gping style
bfly123 Jan 6, 2026
824d6ed
feat: auto-enable plan mode when CCA is installed
bfly123 Jan 6, 2026
29daa81
fix: prevent plan mode conflict with auto mode
bfly123 Jan 6, 2026
94be808
fix: oask returning stale reply when OpenCode still processing
bfly123 Jan 6, 2026
34d43dc
chore: bump version to 2.3.5
bfly123 Jan 6, 2026
23cdf1c
feat: add per-provider lock and output clearing for request-response …
bfly123 Jan 6, 2026
735e710
feat: add non-blocking lock for cask/gask/oask (v2.3.6)
bfly123 Jan 6, 2026
5368b30
feat: per-directory lock for cask/gask/oask
bfly123 Jan 6, 2026
dea4451
feat: simplify CCA detection using .autoflow folder
bfly123 Jan 6, 2026
6810e5b
fix: oask session tracking for new session creation (v2.3.9)
bfly123 Jan 6, 2026
dad723b
fix: Windows compatibility improvements
TachiKuma Jan 6, 2026
7e87234
Merge pull request #23 from TachiKuma/fix/windows-compatibility
bfly123 Jan 6, 2026
7496aa8
更新 ccb
TachiKuma Jan 6, 2026
4426210
Merge pull request #24 from TachiKuma/main
bfly123 Jan 6, 2026
da628db
Fix cask output write race on WSL
HanCheg0812 Jan 7, 2026
ca1fdcc
Merge pull request #26 from HanCheg0812/fix/cask-pending-output
bfly123 Jan 7, 2026
8c71d19
[v2.3]:修复会话与终端识别。增加父目录会话文件查找、使用标题标记定位 wezterm 窗格,并修正 cask 完成标记处理
HanCheg0812 Jan 7, 2026
895fefb
Merge pull request #29 from HanCheg0812/fix/cask-pending-output
bfly123 Jan 7, 2026
82833d4
修复 Windows 原生环境下 WezTerm pane 标题依赖 printf 造成的 ccb up 启动失败
TachiKuma Jan 7, 2026
850d79f
feat: 会话绑定强化与 cask 并发支持
Adamcf123 Jan 8, 2026
639d343
Merge pull request #32 from Adamcf123/feature/pane-session-registry
bfly123 Jan 8, 2026
deab005
Merge pull request #31 from TachiKuma/main
bfly123 Jan 8, 2026
1e5d362
[v2.4] Add caskd daemon with session management and resilience features
bfly123 Jan 9, 2026
6639249
v3.0.0: Smart Daemon Architecture
bfly123 Jan 9, 2026
1f50d76
fix: sync VERSION constant to 3.0.0 - VERSION was still 2.3.5 while R…
bfly123 Jan 10, 2026
f620982
docs: update WeChat QR code image
bfly123 Jan 10, 2026
5023f38
refactor: extract common daemon logic to shared modules (Step 1-4)
bfly123 Jan 10, 2026
f929d6d
refactor: extract common client logic to askd_client.py (Step 5)
bfly123 Jan 10, 2026
3f4f58e
refactor: unify session helpers, worker pool, and protocol module
bfly123 Jan 10, 2026
1f1e9f3
fix: improve Windows native compatibility
bfly123 Jan 10, 2026
f5e0da2
fix(install): normalize embedded python indentation
bfly123 Jan 10, 2026
3cf1805
fix: harden worker thread stop and Windows locks
bfly123 Jan 10, 2026
2cf3f4a
test: add pytest unit and integration suite
bfly123 Jan 10, 2026
3a2ee19
ci: add GitHub Actions test matrix
bfly123 Jan 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Tests

on:
push:
pull_request:

jobs:
test:
name: ${{ matrix.os }} / py${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.10", "3.11", "3.12"]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install pytest
run: |
python -m pip install --upgrade pip
python -m pip install pytest

- name: Syntax check
run: python -m compileall -q lib bin ccb

- name: Run tests
run: pytest test/ -v

11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
__pycache__/
*.pyc
.venv/
.pytest_cache/
docs/
tests/
.codex-session
.gemini-session
.claude-session
.opencode-session
opencode.json
.claude/
*.mp4
tmp/
compare_with_mcp/
CLAUDE.md
AGENTS.md
openspec
7 changes: 7 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Auto-Delegation to OpenCode

When executor=codex+opencode:
1. Break down the task into steps
2. Use oask to delegate to OpenCode
3. Review results and iterate
4. Return final result
1 change: 0 additions & 1 deletion CLAUDE.md

This file was deleted.

48 changes: 48 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# AGPL-3.0 - GNU Affero General Public License v3.0

## English

This software is licensed under the AGPL-3.0 license, which means:

- **Attribution Required**: You must give appropriate credit, provide a link to the license, and indicate if changes were made. When using Claude Code Bridge (CCB), please credit the original project.

- **Open Source Required**: If you modify this software and distribute it or run it as a service, you must release your source code under AGPL-3.0.

- **Network Use (Copyleft)**: If you run this software as a network service (e.g., SaaS), users interacting with it over the network must be able to receive the source code.

- **No Closed-Source Use**: You cannot use this software in proprietary/closed-source projects unless you open-source the entire project under AGPL-3.0.

**In short**: You can use Claude Code Bridge for free, but if you build upon it, your code must also be open-sourced under AGPL-3.0 with attribution to this project. Closed-source commercial use requires a separate license.

For commercial licensing inquiries (closed-source use), please contact the maintainer.

---

## 中文

本软件采用 AGPL-3.0 许可协议,这意味着:

- **署名要求**:您必须注明出处,提供许可协议链接,并说明是否进行了修改。使用 Claude Code Bridge (CCB) 时,请注明项目来源。

- **开源要求**:如果您修改此软件并将其分发或作为服务运行,则必须根据 AGPL-3.0 发布您的源代码。

- **网络使用(Copyleft)**:如果您将此软件作为网络服务(例如 SaaS)运行,则通过网络与其交互的用户必须能够接收源代码。

- **禁止闭源使用**:您不能在专有/闭源项目中使用此软件,除非您将整个项目根据 AGPL-3.0 开源。

**简单来说**:您可以免费使用 Claude Code Bridge,但如果您基于它进行开发,您的代码也必须根据 AGPL-3.0 开源,并注明本项目。闭源商业用途需要单独的许可证。

对于商业许可咨询(闭源使用),请联系维护者。

---

## Full License Text

GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007

Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

For the complete license text, see: https://www.gnu.org/licenses/agpl-3.0.txt
Loading