Locate agent trajectory files on the local machine
Project description
trajectoriz
Library to work with agent trajectory files. Support Claude, Codex, OpenCode and others
Installation
pip install trajectoriz
Features
- Unified record API — iterate and parse sessions from Claude Code, Codex, Copilot, OpenCode, Hermes and more through a single
iter_records()/parse_record()interface - Full-content search — three backends: in-process
grep(default, no setup),recoll(Xapian index),sqlite(FTS5 index) - Blame — trace every agent edit to a file across all trajectory sources, with line/char deltas
- HTML export —
trajectoriz-cli show <id> --htmlrenders a trajectory as a self-contained HTML page
CLI
# List trajectories in the current directory
trajectoriz-cli list
# Search all trajectories for a keyword (in-process grep, default)
# Show a trajectory (markdown, paginated)
trajectoriz-cli show cl-1234abcd
trajectoriz-cli show cl-1234abcd --last
trajectoriz-cli show cl-1234abcd --html > out.html
# Blame a file — every agent edit in chronological order with line deltas
trajectoriz-cli blame src/main.py
# Aggregate shell-invoked programs across a repo
trajectoriz-cli advanced tools --dir /path/to/repo --json
trajectoriz-cli search raven
# Search backends
trajectoriz-cli search foo --backend grep # in-process substring scan (default)
trajectoriz-cli search foo --backend recoll # Xapian index via recoll CLI
trajectoriz-cli search foo --backend sqlite # local SQLite FTS5 index
# Metadata-only search (no trajectory parsing, much faster)
trajectoriz-cli search foo --fast
# Build / update the recoll and SQLite indexes
trajectoriz-cli refresh # both
trajectoriz-cli refresh --no-sqlite # recoll only
trajectoriz-cli refresh --no-recoll # SQLite only
API
from trajectoriz import iter_records, parse_record
# Iterate sessions across all supported agents (Claude, Codex, Copilot, OpenCode, …)
for record in iter_records():
print(record.agent, record.timestamp[:10], record.first_msg[:60])
# Iterate sessions for the current project only
for record in iter_records(cwd="/path/to/repo"):
trajectory = parse_record(record)
if trajectory is not None:
print(f"{record.agent}: {len(trajectory.steps)} steps, {trajectory.total_tokens} tokens")
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file trajectoriz-0.37.0-py3-none-any.whl.
File metadata
- Download URL: trajectoriz-0.37.0-py3-none-any.whl
- Upload date:
- Size: 34.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7869cd408dd66c63cf99dd70fea0832af04d179c57833c34b0aef13276b46e92
|
|
| MD5 |
9e1b993203141f27b0d09771df1762d6
|
|
| BLAKE2b-256 |
441269e5dca6ad6773b250e598ec63fdde987bcb8fa6d1fc25fa8391de3e7c85
|
Provenance
The following attestation bundles were made for trajectoriz-0.37.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on monperrus/trajectoriz
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trajectoriz-0.37.0-py3-none-any.whl -
Subject digest:
7869cd408dd66c63cf99dd70fea0832af04d179c57833c34b0aef13276b46e92 - Sigstore transparency entry: 2019394965
- Sigstore integration time:
-
Permalink:
monperrus/trajectoriz@5e635620fd57cd0e67db7ac87bf8cdd369d2ea47 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/monperrus
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@5e635620fd57cd0e67db7ac87bf8cdd369d2ea47 -
Trigger Event:
push
-
Statement type: