{"repo":"letta-ai/trajectory","free":true,"listed":false,"github":"https://github.com/letta-ai/trajectory","clone":"git clone https://github.com/letta-ai/trajectory.git","description":"Convert sessions across harnesses to a unified trajectory format - designed to be consumed by agents (e.g. for memory formation, dreaming, search)","language":"TypeScript","stars":227,"topics":["agent-harness","agent-memory","claude-code","codex","deepagents","dreaming","hermes-agent","openclaw","openhands"],"license":"Apache-2.0","category":"machine-learning","readme_excerpt":"trajectory Normalize agent transcripts from different runtimes into one validated, model-ready record format. Agent tools represent the same concepts—messages, reasoning, tool calls, and tool results—in incompatible native formats. trajectory provides one TypeScript API that turns those formats into deterministic, structured records for training, evaluation, analysis, and inference. The caller supplies a transcript string and its source. The one exception is Deep Agents, whose sessions normalizeCheckpoint reads from its local LangGraph SQLite store by thread ID; see src/adapters/deepagents/ . Installation The TypeScript package is published as @letta-ai/trajectory : The Python wrapper is published as agent-trajectory and imports as trajectory : Quick start records contains the normalized trajectory. diagnostics is always present and is empty when the transcript required no recoverable cleanup. Supported sources source Accepted input format Normalized meta.source --- --- --- atif ATIF-v1.0 through ATIF-v1.7 whole-trajectory JSON atif claude-code Native Claude Code JSONL claude-code codex Native Codex rollout JSONL codex copilot-cli Native GitHub Copilot CLI event JSONL copilot-cli cursor Cursor role/message content-block JSONL capture cursor droid Native Droid session JSONL droid gemini-cli Native Gemini CLI whole-session JSON gemini-cli hermes Session-store message-row array or a { \"session\": {...}, \"messages\": [...] } envelope hermes letta-code Letta Code client transcript.j","default_branch":null,"files":null,"tree":[],"storefront":"/r/letta-ai","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/letta-ai/trajectory/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}