Persistent infrastructure for the Agent era.
Persisting connects durable model state—parameters and KV caches—with durable Agent history—trajectories and execution records. The current product is the path from execution to queryable history:
pvisoris an executor that produces persistable, reviewable facts: staged Effects and execution records from one Agent Run;pchroniclebrowses, queries, exchanges, and serves trajectory Datasets.
Each command works on its own. Connected, they cover pvisor run --safe →
review/apply → configured capture → a queryable Dataset.
pip install persisting[lance]
pvisor --version
pchronicle --versionThe rolling nightly build installs the same commands without a Rust toolchain:
curl -fsSL https://raw.githubusercontent.com/DeepLink-org/Persisting/main/scripts/install-nightly.sh | bashSee the installation guide for platform requirements and executor setup.
pvisor run --safe codex
pvisor review last
pvisor apply last --all # or: pvisor drop last--safe stages workspace changes; nothing enters your project tree before you
accept it. The exact boundary is platform-dependent and recorded with the
Run—consult the execution guide
before treating it as a security boundary.
pchronicle onboard
pchronicle onboard query
pchronicle agent codex ./trajectory-data --ask "Which tools fail most often?"The onboarding flow creates a temporary example Dataset—no source checkout
required. pchronicle import accepts ATIF, ACTF, and OpenAI Messages;
pchronicle serve starts a loopback-only, read-only Dataset UI and API.
After capture is configured, selected pVisor Run events can enter a pChronicle Dataset. See the capture guide.
| Capability | Status |
|---|---|
| pVisor host execution, review, checkpoints, and transactional workspace | Implemented |
| pChronicle local/S3 catalog, bounded SQL, analysis, find, import/export | Implemented |
| pChronicle loopback-only read API and embedded Web UI | Implemented |
| Gateway capture and cooperative proxy policy | Implemented |
| Container/libkrun executors and transparent network boundaries | Platform-dependent; see the pVisor and OverlayNet docs |
| Queue and document Search | Separate stable capabilities |
| Tensor Memory / TTAS | Experimental |
- Choose a workflow — pick the entry point that matches your task
- Run your first Agent — the run-review-apply loop
- Explore durable history — browse and query a trajectory Dataset
- Project architecture — ownership and delivery boundaries
Criterion.rs microbenchmarks and hyperfine lifecycle scenarios are compared
against main in CI; see the benchmark contract.
Latest nightly pChronicle benchmark: 819a818a6a77 on linux/x86_64 (2026-08-31T06:59:25.611024+00:00).
| Case | Metric | Value |
|---|---|---|
criterion/atif_conversion/parse_corpus | latency_median_ns | 4.153e+06 ns |
criterion/atif_conversion/roundtrip_corpus | latency_median_ns | 5.535e+06 ns |
criterion/projection_cpu/events_to_storyline_corpus | latency_median_ns | 2.462e+05 ns |
system/projection_pipeline/event_append | initial_append_ms | 66.845 ms |
system/projection_pipeline/projection_build | build_ms | 4949.119 ms |
system/projection_pipeline/projection_incremental | sync_ms | 37.92 ms |
system/lance_vs_json/lifecycle | cold_query_ms | 3034.517 ms |
system/lance_vs_json/lifecycle | get_storyline_full_ms | 8.474 ms |
system/lance_vs_json/lifecycle | replace_storyline_ms | 39.607 ms |
system/lance_vs_json/selective | lance_qps | 384.7 ops/s |
system/lance_vs_json/group_by | lance_qps | 521.8 ops/s |
system/lance_vs_json/summary | lance_over_json | 0.244 ratio |
system/json_streaming_ndjson/json_streaming | p95_ms | 10.516 ms |
system/json_streaming_ndjson/json_streaming | rows_s | 3.98e+05 ops/s |
system/json_streaming_ndjson/json_streaming | process_peak_rss_mib | 36.844 MiB |
hyperfine/projection_pipeline | wall_median_seconds | 5.083 s |
hyperfine/lance_vs_json | wall_median_seconds | 39.421 s |
Open the complete benchmark run.
Apache License 2.0. See NOTICE for third-party
attributions and separately licensed bundled components.