{"_id":"@alexzeitler/session-md","name":"@alexzeitler/session-md","dist-tags":{"latest":"0.5.0"},"versions":{"0.5.0":{"name":"@alexzeitler/session-md","version":"0.5.0","type":"module","bin":{"session-md":"session-md"},"devDependencies":{"@types/bun":"latest"},"peerDependencies":{"typescript":"^5"},"dependencies":{"@modelcontextprotocol/sdk":"^1.28.0","@opentui/core":"^0.1.79","smol-toml":"^1.3.1"},"_id":"@alexzeitler/session-md@0.5.0","gitHead":"412381e105c94a9c0adf3440ef968da85d0fc17b","description":"A terminal UI for browsing and managing AI chat sessions from multiple sources - Claude Code, Claude.ai exports, OpenCode, and Memorizer.","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-z517dId/60lsez7wn5UAjJUPZIDsqIEh10G408tbIH2/XZkEeSbVZPDI35YSQDJkaPBglxG4wLgsI21pzZFAfA==","shasum":"0404f140303c809fbb38416309a8b0476b2a7f14","tarball":"https://registry.npmjs.org/@alexzeitler/session-md/-/session-md-0.5.0.tgz","fileCount":26,"unpackedSize":112798,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDU6tjFnVywXAYY2GzYUG/iZBMPyAgHQSIrcqbCXAmOZAIgQinWORgs/J/K9StM+cWdvuASJni4EIDuGwnfBftiPbM="}]},"_npmUser":{"name":"alexzeitler","email":"alexander.zeitler@pdmlab.com"},"directories":{},"maintainers":[{"name":"alexzeitler","email":"alexander.zeitler@pdmlab.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/session-md_0.5.0_1774716786558_0.6799990261473725"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-28T16:53:06.448Z","0.5.0":"2026-03-28T16:53:06.732Z","modified":"2026-03-28T16:53:06.950Z"},"maintainers":[{"name":"alexzeitler","email":"alexander.zeitler@pdmlab.com"}],"description":"A terminal UI for browsing and managing AI chat sessions from multiple sources - Claude Code, Claude.ai exports, OpenCode, and Memorizer.","readme":"# session-md\n\nA terminal UI for browsing and managing AI chat sessions from multiple sources - Claude Code, Claude.ai exports, OpenCode, and Memorizer.\n\nBuilt with [Bun](https://bun.sh), [OpenTUI](https://github.com/anomalyco/opentui), and TypeScript.\n\n## Features\n\n- Browse sessions from 4 sources in a single TUI\n- Filter sessions by source and text search\n- **Full-text content search** (`g`) with SQLite FTS5 index\n- Multi-select sessions and copy as Markdown to target folders\n- Markdown preview with syntax highlighting\n- Configurable targets for organizing exported sessions\n- Incremental search index - only new/changed sessions are re-indexed on startup\n\n## Supported Sources\n\n| Source | Format | Location |\n|--------|--------|----------|\n| [**Claude Code**](https://docs.anthropic.com/en/docs/claude-code) | JSONL | `~/.claude/projects/**/*.jsonl` |\n| [**Claude.ai**](https://claude.ai) Export | ZIP / `conversations.json` | Configurable path |\n| [**OpenCode**](https://github.com/anomalyco/opencode) | JSON shards | `~/.local/share/opencode/storage/` |\n| [**Memorizer**](https://github.com/petabridge/memorizer) | REST API | Configurable URL |\n\n## Install\n\n### Global (recommended)\n\n```bash\nbun install -g @alexzeitler/session-md\nsession-md\n```\n\n### From source\n\n```bash\ngit clone https://github.com/AlexZeitler/session-md.git\ncd session-md\nbun install\nbun src/index.ts\n```\n\n### Update\n\n```bash\nsession-md update\n```\n\n### Version\n\n```bash\nsession-md --version\n```\n\n## Configuration\n\nConfig file: `~/.config/session-md/config.toml`\n\nA default config is created on first run.\n\n```toml\ndefault_target = \"~/notes/claude-chats\"\n\n[targets]\nvault   = \"~/notes/claude-chats\"\nwork    = \"~/work/claude-sessions\"\narchive = \"~/archive/claude\"\n\n[sources]\nclaude_code    = \"~/.claude/projects\"\nopencode       = \"~/.local/share/opencode/storage\"\n# claude_export = \"~/Downloads/conversations.zip\"\n# memorizer_url = \"http://localhost:5001\"\n```\n\n## Keyboard Shortcuts\n\n### Navigation\n\n| Key | Action |\n|-----|--------|\n| `Tab` | Cycle focus: Sources → Sessions → Detail |\n| `Shift+Tab` | Cycle focus backward |\n| `j` / `k` | Navigate list / scroll detail |\n| `gg` | Jump to top (list or detail) |\n| `G` | Jump to bottom (list or detail) |\n| `Ctrl+d` / `Ctrl+u` | Page down / up in detail |\n| `Esc` | Back to sessions from detail |\n\n### Sessions\n\n| Key | Action |\n|-----|--------|\n| `Space` | Toggle selection |\n| `/` | Open text filter |\n| `g` | Full-text content search (grep) |\n| `c` | Copy selected sessions to target |\n| `q` | Quit |\n\n### Filter (`/`)\n\n| Key | Action |\n|-----|--------|\n| Type | Filter sessions by title/project |\n| `Enter` | Move to filtered results (filter stays active) |\n| `/` | Return to filter input |\n| `Esc` | Close filter |\n\n### Content Search (`g`)\n\n| Key | Action |\n|-----|--------|\n| Type | Search within session content (FTS5) |\n| `Enter` | Move to results / open selected result |\n| `/` | Return to search input |\n| `Esc` | Close search |\n\nContent search uses a SQLite FTS5 index stored at `~/.config/session-md/search-index.sqlite`. The index is built incrementally on startup - only new or changed sessions are indexed.\n\nTo rebuild the index from scratch:\n\n```bash\nsession-md reindex\n```\n\n## MCP Server\n\nsession-md can run as an [MCP](https://modelcontextprotocol.io/) server, exposing session search and retrieval to AI assistants like Claude Code.\n\n### Stdio Transport\n\nFor direct integration with Claude Code:\n\n```bash\nsession-md mcp\n```\n\nAdd to your Claude Code MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"session-md\": {\n      \"command\": \"session-md\",\n      \"args\": [\"mcp\"]\n    }\n  }\n}\n```\n\n### HTTP Transport\n\nForeground:\n\n```bash\nsession-md mcp --http              # default port 8282\nsession-md mcp --http --port 9000  # custom port\n```\n\nDaemon (background):\n\n```bash\nsession-md mcp --http --daemon\nsession-md mcp stop\n```\n\nDaemon logs: `~/.cache/session-md/mcp.log`\n\nHealth check: `GET http://localhost:8282/health`\n\n### MCP Tools\n\n| Tool | Description |\n|------|-------------|\n| `search_sessions` | Full-text search across all indexed sessions |\n| `list_sessions` | List sessions, optionally filtered by source |\n| `get_session` | Retrieve full Markdown content of a session by ID |\n| `import_sessions` | Re-scan all configured sources and update the index |\n\n## Requirements\n\n- [Bun](https://bun.sh) >= 1.0\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-3f237781159494caccd4a52296a4f8f7"}