Anvil (FIPS)

🔒 Anvil FIPS · v2.2.28-fips.0

The same Anvil.
FIPS 140-3 validated.

Every capability of Anvil — the terminal engine, the vivid web viewer, the mind map, the memory — built for regulated environments. All cryptography runs inside a FIPS 140-3 validated module, with a classification banner, a tamper-evident audit log, and signed provenance.

aws-lc-rs FIPS module · classification banner · AU-9 audit chain · air-gap ready

01 In your terminal same TUI · classification banner marks every session
anvil — main
UNCLASSIFIED
SESSIONS
● main
AGENTS (GLOBAL)
none active
STATUS (ALL TABS)
running1 tab
pending0 perms
MEMORY
working17t
episodic421
semantic1c·1a
long-termL7
MIND MAP
nodes18
links5
MODEL
claude-opus-4-8
CONTEXT
14k/1M
KEYBINDS
? help · /quit exit
BUILD
2.2.33
● mainF2/F3 switch · Ctrl+T new · /help
DECK: Conversation
[10:41] ◆ Connected to daemon session.
▌ Add a merge_sorted helper to src/utils.rs, with a unit test. Then run the tests.
▎ I'll add merge_sorted (two-pointer, O(n+m)) and a covering test.
◆ read_file {"path":"src/utils.rs"}
◆ edit_file src/utils.rs +18 lines
pub fn merge_sorted(a: &[i32], b: &[i32]) -> Vec<i32> {
let mut out = Vec::with_capacity(a.len()+b.len());
// interleave, then drain the tail…
}
▎ Running the tests to prove it works.
◆ bash cargo test merge_sorted
test result: ok. 1 passed; 0 failed; 0 ignored
Thinking…
Type a message or /command…Send
UNCLASSIFIED
02 From your browser same web viewer · same banner · same validated crypto
English ▾ Connected Disconnect
UNCLASSIFIED
SESSIONS
● main
AGENTS (GLOBAL)
none active
STATUS (ALL TABS)
running1 tab
pending0 perms
MEMORY
working17t
episodic421
semantic1c·1a
long-termL7
MIND MAP
nodes18
links5
MODEL
claude-opus-4-8
CONTEXT
14k/1M
KEYBINDS
? help · /quit exit
BUILD
2.2.33
DECK: Conversation · drag to copy · End to return to live
You
Add a merge_sorted helper to src/utils.rs that merges two sorted slices, with a unit test. Then run the tests.
Anvil
I'll add a merge_sorted function with a two-pointer merge and a covering test. First, let me look at the file.
read_file {"path":"src/utils.rs"}
edit_file {"path":"src/utils.rs", …}
Anvil
Added merge_sortedO(n+m), stable across duplicates:
RUST/// Merge two already-sorted slices into one sorted `Vec`. pub fn merge_sorted(a: &[i32], b: &[i32]) -> Vec<i32> { let mut out = Vec::with_capacity(a.len() + b.len()); let (mut i, mut j) = (0, 0); while i < a.len() && j < b.len() { if a[i] <= b[j] { out.push(a[i]); i += 1; } else { out.push(b[j]); j += 1; } } out.extend_from_slice(&a[i..]); out.extend_from_slice(&b[j..]); out }
Anvil
Now let me run the tests to prove it works.
bash cargo test merge_sorted
Anvil
running 1 test
test utils::tests::merges_sorted ... ok

test result: ok. 1 passed; 0 failed; 0 ignored

All green — the test covers interleaved values, empty inputs, and duplicates.
Thinking…
UNCLASSIFIED
Same engine

Nothing you give up. Everything you must prove.

Anvil FIPS is not a stripped-down variant. It's the full commercial Anvil — the terminal engine, the vivid web viewer, the mind map, seven-layer memory, live control, the atmosphere — with the cryptographic module and compliance controls your environment requires. Same features. Same experience. Regulated assurance.

The assurances

Built to pass the audit.

The differences live below the surface — in the crypto, the logs, and the provenance — exactly where a compliance review looks.

FIPS 140-3
🔒

Validated cryptography

Every cryptographic primitive runs inside the aws-lc-rs FIPS 140-3 validated module. FIPS mode is asserted at process startup — if the module can't initialize in FIPS mode, Anvil won't run.

aws-lc-rs (validated)ringchacha20ed25519
AC / classification
🏷️

Classification banner

A configurable CAPCO banner marks every session with the full marking — level, SCI compartments, and dissemination controls (e.g. SECRET//NOFORN) — reserved at the very top and bottom of the screen so it can never be scrolled away. It renders identically in the terminal and the web viewer. Tip: click the top banner in either mockup above to cycle levels.

AU-3 · AU-9
📜

Tamper-evident audit log

Every action is recorded as an AU-3/ECS event in a SHA-256 hash-chained audit log (AU-9), computed inside the validated module — append-only and tamper-evident for your reviewer.

FIPS 186-5
✍️

Signed provenance

Skills and artifacts carry ECDSA-P256 provenance signatures (FIPS 186-5) via the validated module, so what runs in your environment is what you approved.

SC / air-gap
🛰️

Air-gap ready

Bring your own provider or run fully local with Ollama. No telemetry, no phone-home — Anvil FIPS is built to operate in disconnected and controlled networks.

private dist
📦

Controlled distribution

Anvil FIPS ships from a private, access-controlled registry — never the public marketplace — with checksums and signed releases for your supply-chain review.

The mind map

It thinks in a map.

A living, force-directed graph of your work — wired into Anvil's memory so it reflects what it's actually learning. Drive it from the browser: drag anything, zoom to the cursor, click any node for its full notes.

anvil · mind mapforce-directed
Product Planning · 18 nodes · 5 links
🌐

Force-directed

Nodes repel so the graph stays readable at hundreds of nodes.

🧠

Memory-aware

Today's memories auto-populate; toggle to a color-coded Memory Graph.

With atmosphere

An ambient starfield drifts behind it — on the web and in the terminal.

Live control

Terminal and browser, one session.

Start in the terminal, hand off to a paired browser tab, and back again — it's the same live session the whole time, never a copy. Nothing is lost in the handoff.

  • Pair a browser with one command; drive the exact session you're running.
  • The web viewer renders like a product — message cards, glowing code panels, real markdown.
  • Hand off without flashing or losing history; wake the terminal and it's all there.
anvil — local control● paired
LIVE SESSION IN BROWSER
session360943
clients1 · local
context14k / 1M
press any key to continue in the TUI
Seven-layer memory

It remembers what matters.

Anvil remembers across sessions — working, episodic, semantic, procedural, reflective, and a long-term knowledge archive. Click any layer to browse what it knows.

  • Every memory is a card with a colored type badge and full text on click.
  • Memories link to each other and to your mind-map thoughts.
  • All local — it's your knowledge, and it stays yours.
anvil — memory
Chose two-pointer merge over sort()
feedbackinputs already sorted → O(n+m)
Ship the onboarding flow before API v2
projectopen task · linked from "This week"
Pricing settled on three tiers
reference↳ knowledge doc "launch-plan"
Prefer named functions over closures here
feedbackreadability in the hot path
By the numbers

The same power, provable.

140-3FIPS validated
0non-validated crypto
AU-9audit hash chain
0telemetry calls
aws-lc-rs FIPS 140-3ECDSA-P256 (186-5)SHA-256 chain classification bannerair-gap readyprivate distribution
Deploy Anvil FIPS

Controlled distribution.

Anvil FIPS ships from a private, access-controlled registry — never the public marketplace — with signed releases and checksums for your supply-chain review.

private registry
Access    Culpur Defense private registry — contact for provisioning
Verify    signed release · SHA-256 checksums · FIPS mode asserted at startup
Linux
x86_64 · gnu
validated
Linux
arm64 · gnu
validated
Windows
x86_64 · msvc
validated
macOS
Apple Silicon
validated

Version 2.2.28-fips.0 · Requires an access agreement. Contact Culpur Defense for provisioning.

Scroll to Top