【AI協調開発研究】 - AI二重化モデルの学術論文draft完成(workshop_paper_draft.md) - 「隠れた危機」分析とbirthの原則哲学化 - TyEnv「唯一の真実」協調会話を保存・研究資料に統合 - papers管理構造の整備(wip/under-review/published分離) 【Phase 10.9-β HostCall進捗】 - JitConfigBox: relax_numeric フラグ追加(i64→f64コアーション制御) - HostcallRegistryBox: 署名検証・白黒リスト・コアーション対応 - JitHostcallRegistryBox: Nyash側レジストリ操作API - Lower統合: env直読 → jit::config::current() 参照に統一 - 数値緩和設定: NYASH_JIT_HOSTCALL_RELAX_NUMERIC/Config.set_flag 【検証サンプル拡充】 - math.sin/cos/abs/min/max 関数スタイル(examples/jit_math_function_style_*.nyash) - 境界ケース: 署名不一致・コアーション許可・mutating拒否サンプル - E2E実証: String.length→allow, Array.push→fallback, math関数の署名一致観測 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
143 lines
3.7 KiB
Markdown
143 lines
3.7 KiB
Markdown
# 🚀 Claude Code × tmux セットアップ完全ガイド
|
||
|
||
## 📋 概要
|
||
Claude Codeもtmuxで動かすことで、Codexとの完璧な双方向通信を実現します!
|
||
|
||
## 🎯 手順(1から)
|
||
|
||
### 1️⃣ 現在のClaude Codeを終了
|
||
```bash
|
||
# 現在のセッションを保存して終了
|
||
exit
|
||
```
|
||
|
||
### 2️⃣ tmuxセッションでClaude Codeを起動
|
||
```bash
|
||
# 新しいtmuxセッションを作成(名前: claude-8771)
|
||
tmux new-session -d -s claude-8771
|
||
|
||
# Claude Codeをtmuxセッションで起動
|
||
tmux send-keys -t claude-8771 "cd /mnt/c/git/nyash-project/nyash" Enter
|
||
tmux send-keys -t claude-8771 "claude" Enter
|
||
|
||
# セッションにアタッチして作業
|
||
tmux attach -t claude-8771
|
||
```
|
||
|
||
### 3️⃣ hook-serverを起動(別ターミナル)
|
||
```bash
|
||
# 新しいターミナルを開いて
|
||
cd /mnt/c/git/nyash-project/nyash/tools/codex-tmux-driver
|
||
HOOK_SERVER_PORT=8770 node hook-server.js
|
||
```
|
||
|
||
### 4️⃣ Codexをtmuxで起動(さらに別ターミナル)
|
||
```bash
|
||
# 既存のスクリプトを使用
|
||
cd /mnt/c/git/nyash-project/nyash/tools/codex-tmux-driver
|
||
./tmux-launch-only.sh
|
||
```
|
||
|
||
### 5️⃣ 双方向ブリッジを起動(さらに別ターミナル)
|
||
```bash
|
||
cd /mnt/c/git/nyash-project/nyash/tools/codex-tmux-driver
|
||
node claude-codex-unified-bridge.js
|
||
```
|
||
|
||
## 🔄 完成図
|
||
|
||
```
|
||
┌─────────────────┐
|
||
│ Terminal 1 │
|
||
│ tmux: claude │ ←──┐
|
||
└─────────────────┘ │
|
||
│
|
||
┌─────────────────┐ │ ┌──────────────┐
|
||
│ Terminal 2 │ ├────┤ hook-server │
|
||
│ hook-server │ │ │ port: 8770 │
|
||
└─────────────────┘ │ └──────────────┘
|
||
│
|
||
┌─────────────────┐ │
|
||
│ Terminal 3 │ │
|
||
│ tmux: codex │ ←──┘
|
||
└─────────────────┘
|
||
|
||
双方向自動通信!
|
||
```
|
||
|
||
## 💡 使い方
|
||
|
||
### Claude → Codex(従来通り)
|
||
```javascript
|
||
// Claude Code内で実行
|
||
const WebSocket = require('ws');
|
||
const ws = new WebSocket('ws://localhost:8770');
|
||
ws.send(JSON.stringify({
|
||
source: 'claude',
|
||
type: 'inject-input',
|
||
data: 'Hello Codex!'
|
||
}));
|
||
```
|
||
|
||
### Codex → Claude(新機能!)
|
||
Codexが自動的にClaudeに返信します(unified-bridgeが処理)
|
||
|
||
## 🎮 tmux基本操作
|
||
|
||
```bash
|
||
# セッション一覧
|
||
tmux ls
|
||
|
||
# セッションにアタッチ
|
||
tmux attach -t claude-8771
|
||
|
||
# デタッチ(セッションから抜ける)
|
||
Ctrl+B, D
|
||
|
||
# セッション削除
|
||
tmux kill-session -t claude-8771
|
||
|
||
# 画面分割(横)
|
||
Ctrl+B, "
|
||
|
||
# 画面分割(縦)
|
||
Ctrl+B, %
|
||
|
||
# ペーン間移動
|
||
Ctrl+B, 矢印キー
|
||
```
|
||
|
||
## ⚠️ 注意事項
|
||
|
||
1. **tmuxセッション名の重複**
|
||
- claude-8771, codex-safe は固定名なので重複注意
|
||
|
||
2. **ポート番号**
|
||
- 8770: hook-server(固定)
|
||
- 変更する場合は全ての設定を統一
|
||
|
||
3. **終了時の手順**
|
||
1. ブリッジを停止(Ctrl+C)
|
||
2. hook-serverを停止(Ctrl+C)
|
||
3. tmuxセッションを終了
|
||
|
||
## 🚨 トラブルシューティング
|
||
|
||
**Q: セッションが既に存在する**
|
||
```bash
|
||
tmux kill-session -t claude-8771
|
||
tmux kill-session -t codex-safe
|
||
```
|
||
|
||
**Q: hook-serverに接続できない**
|
||
```bash
|
||
# プロセスを確認
|
||
ps aux | grep "node.*hook-server"
|
||
# 強制終了
|
||
pkill -f "node.*hook-server"
|
||
```
|
||
|
||
**Q: メッセージが届かない**
|
||
- hook-serverのログを確認
|
||
- WebSocketの接続状態を確認
|
||
- tmuxセッション名が正しいか確認 |