Local-first inference engine · fully open source

Inference that never leaves the room.

Palimpsests runs language models entirely on hardware you control and writes a tamper-evident record of every request — the data residency and the audit trail that regulated and air-gapped deployments depend on, without a byte crossing your boundary.

Run the model·keep the record·cross no boundary
OpenSSF Best Practices: Gold ↗ fully open source (Apache-2.0) independently verified reproducible builds
The constraint

For data that isn’t allowed to travel.

Patient records under GDPR. Positions on a trading desk. Anything inside a classified or air-gapped network. When the data can’t reach a hosted API, neither can your inference.

Palimpsests keeps the whole loop — model, attention state, and log — on the machine where the data already sits. Nothing is uploaded, nothing is phoned home, and the only thing you export is a record you can verify without exposing what it recorded.

on-prem air-gapped llama.cpp backend Python 3.11+ no network egress
Capabilities

Three things the engine keeps in place.

The recurring idea: hold computed state instead of rebuilding it. Each is a named lever — measured on real hardware, not asserted.

01 / Shared Prefix

Compute once, reuse everywhere

A system prompt or long shared context is processed a single time and held warm, then reused across every request that shares it — instead of being re-read on each call.

state held across requests
02 / Tool Loop

Many steps, one running state

Multi-step tool calling without rebuilding the conversation at each step. Measured on Intel Arc (Vulkan) across 1.5B and 7B, it matches a hand-tuned llama-server — in-process, with no server to run.

measured · parity with a tuned server
03 / KV Persistence

State outlives its process

Attention state is serialized to a validated frame format and restored across sessions and processes. The computed layer survives the process that produced it — and the frame is checked before it’s trusted.

validated frame · restored across runs

The difference is doing all of it locally, with a verifiable record. Every number on this page is measured on real hardware — method and results in the open ↗.

The record

The record beneath the record.

Every request leaves a tamper-evident entry, chained by hash so the log can’t be silently altered — written in a published, frozen wire format, PALA-1 v1.0, not an internal detail. Five independent implementations, three of them outside the project, reproduce it from the spec and test vectors alone. That’s the record-keeping substrate the EU AI Act’s logging expectations rest on — kept locally, verifiable without revealing what it holds. And the software itself carries the same discipline.

Hash-chained log · PALA-1 v1.0

Each entry references the one before it; remove or edit a layer and the chain breaks. The wire format is frozen and independently verified — reproduce it yourself ↗ from the spec and test vectors alone.

Signed releases · PEP 740

Published to PyPI with Sigstore provenance, so a build can be traced back to the source and workflow that produced it.

Bill of materials

An SPDX SBOM ships with the release — the dependency inventory a Cyber Resilience Act review asks for, ready rather than reconstructed.

OSPS Baseline L2 · fuzzed in CI

A self-attested Open Source Project Security baseline, a published threat model, and Atheris fuzzing in the pipeline. Fully open source under Apache-2.0 — every line is public, and you can read, audit, and run all of it.

Assurance

Gold, on the public record.

Palimpsests holds the OpenSSF Best Practices Gold badge — the highest tier of the programme, and the first held by a project founded by a team from Ukraine. It is not a self-declaration: every criterion is a public registry entry ↗ anyone can open and check against this repository.

Reviewed by a second person

Every change — code and docs alike — lands through a pull request reviewed by someone who didn’t write it. No direct commits to main.

Releases that rebuild

Signed with PEP 740 / Sigstore provenance — and reproducible: the v0.10.0 wheel rebuilds byte-for-byte to match the artifact published on PyPI.

Analysed without pause

Static analysis and Atheris fuzzing in CI, a published threat model, and an external security review with every finding closed.

Citable, permanently

Every release is archived with a persistent identifier — DOI 10.5281/zenodo.21978107 ↗ — so the exact code behind a claim can be cited and retrieved.

EU regulatory fit

Built for the EU AI Act — and the regulation around it.

Palimpsests supplies the runtime primitive each act leans on — residency, record-keeping, or supply-chain integrity — as a property you can point to, not a promise. Every title links to the source text on EUR-Lex.

EU AI Act Regulation (EU) 2024/1689 · Art. 12

The hash-chained request log is the automatic record-keeping a high-risk system has to keep — held locally, and verifiable without exposing what it recorded. The Article 12 mapping ↗ sets out, requirement by requirement, what ships today and what is on the roadmap.

GDPR Regulation (EU) 2016/679 · Art. 5(1)(f), 32

Inference runs where the data already sits, so personal data never leaves the controller — no third-country transfer to justify — and the tamper-evident log speaks to integrity of processing.

Cyber Resilience Act Regulation (EU) 2024/2847 · Annex I Pt. II(1)

Ships the machine-readable SBOM, signed releases, a published threat model and coordinated vulnerability handling the CRA makes mandatory for products with digital elements.

DORA Regulation (EU) 2022/2554 · Art. 28

Running the model in-house takes one ICT third-party dependency off the register, and the log gives financial entities defensible evidence for ICT-incident records.

NIS2 Directive (EU) 2022/2555 · Art. 21, 23

Provenance and the SBOM feed supply-chain security measures; the tamper-evident log backs the incident evidence essential and important entities have to produce.

Where the runtime stops

A clean division of responsibility.

A clear split is the credential a regulated buyer looks for. Palimpsests carries the runtime obligations; you own the ones that belong to your deployment.

What Palimpsests carries

  • Local execution.Data stays on the machine that already holds it — residency by construction.
  • A tamper-evident request log.Hash-chained, recoverable, hard to rewrite — record-keeping you can hand to an auditor.
  • Signed, inventoried builds.Sigstore provenance and an SBOM — supply-chain integrity for the runtime itself.
  • Auditable in the open.Apache-2.0, a published threat model, fuzzed in CI — nothing to take on faith.

What you own

  • Human oversightof what the model produces and how it’s acted on.
  • Risk management & conformity assessmentfor the system you build on top.
  • Transparencyto the people your system affects.
  • Lawful basis & data governancefor the inputs you feed it.

Palimpsests is compliance-grade runtime infrastructure: it carries residency, record-keeping, and supply-chain integrity, so your team can focus on the obligations that are yours to own.

Get started

One package. No account.

It installs from PyPI and runs offline. Point it at a local GGUF model and the log starts writing itself. The quickstart lives in the README.

$pip install palimpsests

# fully open source (Apache-2.0) · runs air-gapped · provenance on every release