About openharness
openharness is a local MCP server for developers using multiple coding agents. It finds recent sessions from Claude Code, Codex CLI, and Gemini CLI and returns paths and metadata so agents can read and reference one another’s work.
Key features
- 01Find recent sessions by project
- 02Look up a specific agent’s session
- 03Return session paths and metadata
- 04Support Claude Code, Codex CLI, and Gemini CLI
Use cases
- 01Let Codex CLI review recent Claude Code work
- 02Find other agents’ sessions for a project
- 03Provide agents with session file locations
MCP support
The MCP server exposes get_agent_sessions and get_agent_session, returning session paths and metadata. It does not read, relay, or store session content; agents must read local files themselves.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
2Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| project | string | Yes | Absolute path to the project directory. Required. Only sessions matching this project are returned. |
Details
From the project READMEOpenHarness
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
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:
{ "project": "/Users/me/my-app" }
Output:
[
{
"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:
{ "agent": "claude-code", "project": "/Users/me/my-app" }
Output:
{
"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:
{
"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
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.