# OpenHarness AI 코딩 에이전트의 최근 세션 파일을 찾아 서로 참조하게 해주는 로컬 MCP 서버. 전용 하네스 없이 하네스처럼 동작한다. 기존 도구 환경을 그대로 유지하면서, 에이전트 간 세션을 연결하는 디스커버리 레이어. ## Supported Agents (MVP) | Agent | Session Path | Format | |-------|-------------|--------| | Claude Code | `~/.claude/projects/` | JSONL | | Codex CLI | `~/.codex/sessions/` | JSONL | | Gemini CLI | `~/.gemini/tmp//chats/` | JSON | ## Prerequisites - Each agent must be able to **read local files directly**. - OpenHarness only provides paths and metadata — it does not transform, relay, or store session content. ## Install ```bash npm install -g @freebird-ai/openharness openharness init ``` This registers OpenHarness as an MCP server in each agent's config. ## MCP Tools ### `get_agent_sessions` Returns recent session paths for all agents, filtered by project. **Input:** ```json { "project": "/Users/me/my-app" } ``` **Output:** ```json [ { "agent": "claude-code", "path": "/Users/me/.claude/projects/-Users-me-my-app/session.jsonl", "format": "jsonl", "updatedAt": "2026-03-17T14:32:00Z", "matchedProject": "/Users/me/my-app", "matchedBy": "directory-name" } ] ``` ### `get_agent_session` Returns the recent session path for a specific agent. **Input:** ```json { "agent": "claude-code", "project": "/Users/me/my-app" } ``` **Output:** ```json { "agent": "claude-code", "path": "/Users/me/.claude/projects/-Users-me-my-app/session.jsonl", "format": "jsonl", "updatedAt": "2026-03-17T14:32:00Z", "matchedProject": "/Users/me/my-app", "matchedBy": "directory-name" } ``` Returns `null` if no session is found. ## Project Matching | Agent | Strategy | |-------|----------| | Claude Code | Project path escaped with `-` as directory name | | Codex CLI | Workspace field inside session JSONL | | Gemini CLI | Project path hash matching `tmp//` | ## How It Works ``` User → Codex: "Review what Claude Code worked on recently" Codex → OpenHarness MCP: get_agent_session({ agent: "claude-code", project: "..." }) Codex ← receives session path + metadata Codex → reads the JSONL file directly and performs review ``` No rules needed in agent instruction files. MCP tool descriptions are enough for agents to use naturally. ## Manual MCP Configuration If you prefer to configure manually instead of using `init`: ```json { "mcpServers": { "openharness": { "command": "openharness", "args": [] } } } ``` Add this to your agent's MCP config file: | Agent | Config File | |-------|------------| | Claude Code | `~/.claude/mcp.json` or project `.mcp.json` | | Codex CLI | project `.codex/` | | Gemini CLI | `~/.gemini/settings.json` | ## License MIT