Skip to main content

AI Session System

NIIA reads conversation history from four AI coding tools, indexes them into a single searchable database, and enables cross-model session continuity.
┌──────────────────────────────────────────────────────────────────┐
│  SESSION SOURCES                                                 │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  Tool       Format    Path                                       │
│  ─────────────────────────────────────────────────               │
│  Claude     JSONL     ~/.claude/projects/*/session.jsonl         │
│  Codex      JSONL     ~/.codex/history.jsonl                     │
│  OpenCode   SQLite    ~/.local/share/opencode/opencode.db        │
│  Gemini     JSON      ~/.gemini/tmp/*/chats/*.json               │
│                                                                  │
│  All read locally. No API calls. No internet needed.             │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

Reading Sessions

niia session read latest                    # Claude (default)
niia session read latest --tool codex       # Codex
niia session read latest --tool opencode    # OpenCode
niia session read latest --tool gemini      # Gemini
niia session read c0997679 -n 10            # Specific session, 10 messages

Indexing & Searching

First, index all sessions into a single database:
niia index --sessions
  claude:   19 sessions indexed
  codex:    48 entries indexed
  opencode:  3 sessions indexed
  gemini:   15 sessions indexed
  Total: 85 items
Then search across all four tools at once:
niia session search "session gateway"
niia session search "PTY buffer fix"
niia session search "auth middleware"
Results show which tool, which session, and a content preview:
NIIA Session Search: "session gateway"
======================================================================
  #1  1.14  claude-session-a1b2.md
      > We discussed the authentication flow and decided on JWT tokens.
  #2  1.14  codex-session-c3d4.md
      > Refactored the session manager to use async/await pattern.
  #3  1.00  opencode-session-e5f6.md
      > Traced the PTY output pipeline from daemon to renderer.

Cross-Model Continuity

The core use case: continue work across different AI models.
┌──────────────────────────────────────────────────────────────────┐
│  SCENARIO: Gemini → Claude handoff                               │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  1. You worked 3 hours in Gemini CLI                             │
│     → Gemini saved chats to ~/.gemini/tmp/*/chats/*.json         │
│                                                                  │
│  2. Switch to Claude Code                                        │
│     $ niia session read latest --tool gemini                     │
│     → See full Gemini conversation                               │
│                                                                  │
│  3. Or search for the specific topic                             │
│     $ niia session search "the bug we discussed"                 │
│     → Finds it in Gemini session, shows context                  │
│                                                                  │
│  4. Claude now has the context to continue                       │
│     → No re-explaining. No lost context.                         │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘
This works in every direction:
FromToCommand
Gemini → Claudeniia session read latest --tool gemini
Claude → Codexniia session read latest --tool claude
Codex → OpenCodeniia session search "topic"
Any → Anyniia session search "what we discussed"

NIIA reads each tool’s local session storage automatically. No configuration needed — it discovers and parses session files for Claude, Codex, OpenCode, and Gemini out of the box.

Separation from Documents

Document search and session search use separate databases:
CommandContent
niia docs searchMarkdown documents
niia session searchAI conversations
niia searchUnified results from both
They never mix unless you use niia search which queries both.