@frixaco/shair
v1.1.1
Published
Convert local AI agent session exports into a unified JSON schema.
Downloads
627
Maintainers
Readme
@frixaco/shair
Convert local AI agent session exports into one unified JSON shape.
Supported sources:
claudecodexfactoryopencodepi
What it does
- converts provider-specific session files into a shared block-based schema
- validates converted sessions against the unified schema
- exports normalized sessions through a small CLI
- keeps provider-specific raw details in metadata for fidelity
The schema is documented in UNIFIED_SESSION_SHAPE.md.
CLI
Published usage:
npx @frixaco/shair claude
bunx @frixaco/shair codexLocal development usage:
pnpm export-session claude
pnpm export-session codexExport all checked-in sessions for one provider:
npx @frixaco/shair codex
npx @frixaco/shair claude
npx @frixaco/shair opencode
npx @frixaco/shair pi
npx @frixaco/shair factoryDefault behavior:
- reads from the provider's real local session storage when supported:
codex:~/.codex/{sessions,archived_sessions}and~/.codex-local/...claude:~/.claude/projects,~/.claude-code/projects,~/.claude-local/projectsfactory:~/.factory/sessionsopencode:~/.local/share/opencode/opencode.dbor~/Library/Application Support/opencode/opencode.dbpi:~/.pi/agent/sessions
- falls back to
data/<source>/when no runtime sessions are found, exceptopencode, which requiresopencode.db - writes normalized output to
exported/<source>/<session-id>.json
Useful options:
npx @frixaco/shair codex --input tests/fixtures/codex/source.jsonl --pretty
npx @frixaco/shair factory --out-dir ./tmp/factory-exports
npx @frixaco/shair claude --fail-fastHelp:
npx @frixaco/shair --helpLibrary API
import { convertSessionFile, convertSessionText } from "@frixaco/shair";
const session = convertSessionFile("codex", "path/to/session.jsonl");Main exports:
convertSessionFileconvertSessionTextgetConvertervalidateUnifiedSessionassertUnifiedSession
Development
Build:
pnpm buildRun the full verification suite:
pnpm checkPublish smoke test:
pnpm pack
tmpdir="$(mktemp -d)"
cd "$tmpdir"
npm init -y
npm install /path/to/frixaco-shair-1.1.1.tgz
npx @frixaco/shair --helpRepo Notes
data/contains local source sessions used for sampling and audit workexported/contains generated normalized outputref/is prior art only, not the active implementation
