OpenHarness
by philo-kim
README.md
# OpenHarness
AI 코딩 에이전트의 최근 세션 파일을 찾아 서로 참조하게 해주는 로컬 MCP 서버.
전용 하네스 없이 하네스처럼 동작한다. 기존 도구 환경을 그대로 유지하면서, 에이전트 간 세션을 연결하는 디스커버리 레이어.
## Supported Agents (MVP)
| Agent | Session Path | Format |
|-------|-------------|--------|
| Claude Code | `~/.claude/projects/` | JSONL |
| Codex CLI | `~/.codex/sessions/` | JSONL |
| Gemini CLI | `~/.gemini/tmp/<hash>/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/<hash>/` |
## 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
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues