zather
zather generates Path Packs: procedural docs that teach a coding agent how to recreate the context-building pathway from an excellent Claude Code / Codex CLI session.
Unlike compaction systems that try to reproduce the final patch, zather compacts the path: the ordered set of reads/searches/commands and intermediate "what we learned" checkpoints that got the agent to a useful semantic state.
Install
uv pip install -e .
Quick Start
Generate a Path Pack from a Codex CLI session:
# By session ID
zather build --source codex --session <session-id> --out path-pack.md
# By session file path
zather build --source codex --session-file ~/.codex/sessions/.../rollout-...jsonl --out path-pack.md
Generate from a Claude Code session:
zather build --source claude --project . --session <session-id> --out path-pack.md
List available sessions:
zather list --source codex
zather list --source claude --project .
Options
zather build --source codex --session <id> --out path-pack.md \
--model gpt-5-mini \ # Override model (default: from prompt YAML)
--max-events 250 \ # Max trajectory events to include
--max-chars 1500 \ # Max chars per tool output
--prompt custom-prompt.yaml \ # Custom prompt template
--weave-project wandb/zather \ # Enable weave tracking
--dry-run # Write prompts only, no LLM call
Checkpoints
Target a specific time range within a session:
zather build ... --since 2026-01-07T20:04:00Z --until 2026-01-07T20:10:00Z
Architecture
zather uses the WBAL agent framework:
- ZatherEnv: Loads trajectory data and prompt configuration
- ZatherAgent: Generates Path Pack using
submit_path_packtool - GPT5MiniTester: Default LM (gpt-5-mini with minimal reasoning)
from zather import ZatherEnv, ZatherAgent, build_path_pack
# Load environment with trajectory
env = ZatherEnv.load(
source="codex",
session_id="019b9fa7-...",
output_path=Path("path-pack.md"),
prompt_path=Path("zather/prompts/path_pack.yaml"),
)
# Generate path pack
build_path_pack(env=env)
Evaluation
The eval/ directory contains a weave-based evaluation framework:
python -m eval.evaluation --sessions-dir eval/sessions --project zather-eval
This runs:
- ZatherModel: Generates Path Packs from session files
- PathPackQualityScorer: LLM-as-judge for document quality
- PathReconstructionScorer: Runs Codex with the Path Pack, compares trajectories
Evaluation Dataset
Place session JSONL files in eval/sessions/. Each file should be a Codex CLI session log.
Prompting
The default prompt template is at zather/prompts/path_pack.yaml. It defines:
system_prompt: Instructions for the Path Pack formatuser_prompt_template: Template with{session_meta_yaml}and{trajectory_markdown}placeholdersmodel: Default model to usereasoning_effort: Optional reasoning effort level
Metadata
Release files for zather 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zather-0.3.0.tar.gz | 3.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zather-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.3 MB
Release files / zather-0.3.0.tar.gz
| Download URL | zather-0.3.0.tar.gz |
|---|---|
| Size | 3.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ee8ea9aa207abfdbd98485b1de6b6c326ed9f71b835ebcfe7dbee60bf79fafe
|
|
BLAKE2b-256 checksum How to use checksums |
275e685fbf9f8390cec644bf83703b8a83f8798b2495fdf3b90db5a44742c40b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / zather-0.3.0-py3-none-any.whl
| Download URL | zather-0.3.0-py3-none-any.whl |
|---|---|
| Size | 17.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3a62de6f5e0ed96fd2b654b0b69e8d2ab498213877901d6305aacf0baaec11bd
|
|
BLAKE2b-256 checksum How to use checksums |
b29af698b8aa46d15f2157852893794497ab5d47ec20c4e9ab893e1e4b34c4d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|