io.github.philo-kim/openharness
Lets AI coding agents discover and reference each other's recent sessions.
Ask AI about io.github.philo-kim/openharness
Powered by Claude Β· Grounded in docs
I know everything about io.github.philo-kim/openharness. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
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
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
