# openharness [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/philo-kim/openharness  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/openharness

## Description
Lets AI coding agents discover and reference each other's recent sessions.

## Tools
Capabilities this server exposes over MCP:

- **get_agent_sessions** — Returns recent session paths for all agents, filtered by project.
- **get_agent_session** — Returns the recent session path for a specific agent.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "openharness": {
    "command": "npx",
    "args": ["-y","openharness"]
  }
}
```

## Documentation & README

# 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

