Documentation Index
Fetch the complete documentation index at: https://docs.orinadus.com/llms.txt
Use this file to discover all available pages before exploring further.
Synopsis
Subcommands
shell
~/.bash_history from the last recorded byte offset. New lines are ingested as command events with source: "shell". A checkpoint file at ~/.local/share/urchin/shell.checkpoint tracks the offset so reruns are incremental.
No-op if ~/.bash_history does not exist.
git
Absolute path to a git repository root. Repeatable. Can also be supplied via the
URCHIN_REPO_ROOTS environment variable (colon-separated paths).commit event with the commit message as content, commit SHA in title, and source: "git". Per-repo checkpoints are stored in ~/.local/share/urchin/git-<hash>.checkpoint.
First run per repo is silent — it records the current HEAD but does not ingest historical commits.
claude
~/.claude/projects/ JSONL transcript files. Ingests new conversation turns as conversation events with source: "claude". Uses file + line-offset checkpoints.
copilot
~/.copilot/command-history-state.json. Uses a content-addressed hash checkpoint — reruns only ingest entries that weren’t present in the previous run.
gemini
~/.gemini/tmp/*/chats/*.jsonl. Partial-offset checkpoint per file.
codex
~/.codex/state_5.sqlite, threads table. Captures first_user_message as intent. Row ID watermark checkpoint.
opencode
~/.local/share/opencode/opencode.db. JOINs messages with sessions, filters to user-role messages. Row ID watermark checkpoint.
local-model
~/.local/share/urchin/local-model.jsonl. Any local inference harness (Ollama, LM Studio, llama.cpp) can push events by appending newline-delimited JSON to this file:
prompt (required), model (optional), ts (RFC3339, optional), workspace (optional). Urchin reads from this file and never writes to it. No-op when the file does not exist.
all
URCHIN_REPO_ROOTS), claude, copilot, gemini, codex, opencode, local-model.
Collectors whose source path does not exist are silently skipped.
Notes
- All collectors are read-only. They never write back to source tools.
- Each collector is idempotent — running it twice produces no duplicate events.
- Collector errors are printed to stderr but do not affect other collectors when running
all.
