nixos-config/docs/NAIVEINTENT-VS-PUREINTENT.md
Sridhar Ratnakumar 62d6272b14 doc
2026-06-19 13:51:45 -04:00

3.6 KiB
Raw Blame History

pureintent vs naiveintent — which to use for dev + agentic work

Both are AMD Zen 4 (Phoenix) 8c/16t boxes, so CPU is nearly a wash. The real differences are RAM, SSD, and form factor. All numbers below were measured directly on each machine (June 2026).

Measured comparison

pureintent (Beelink SER8) naiveintent (Lenovo ThinkPad 21ME)
CPU Ryzen 7 8845HS, 8c/16t Ryzen 7 PRO 8840HS, 8c/16t
Sustained all-core clock 4.59 GHz 4.27 GHz
Single-core throughput ~4.55 GB/s sha (tie) ~4.70 GB/s sha (tie)
RAM 32 GB — 20 GB free, already swapping (5.5 GB) 64 GB — 55 GB free, 0 swap
SSD Crucial P3 Plus (QLC, DRAM-less) KIOXIA KXG8 (premium TLC)
Sustained write (4 GB, fdatasync) 729 MB/s 3.1 GB/s (4.3×)
Sequential read (direct) 5.3 GB/s 3.2 GB/s (through LUKS)
Free disk 200 GB (77% full) 782 GB (13% full)
Encryption none LUKS full-disk
Form factor always-on mini PC laptop (battery, lid, roams)

Both run the powersave governor with balance_performance EPP (amd-pstate active mode — normal, not a real powersave), so that's not a differentiator.

What it means

  • CPU: a wash. Same silicon. pureintent holds ~7% higher sustained all-core clock (mini-PC cooling beats a thin laptop chassis), so large parallel Nix builds finish marginally faster on it. Single-core / interactive latency is a tie. Not a deciding factor.
  • RAM strongly favors naiveintent (2×). This is what bites agentic work — several Claude Code agents + language servers + builds + a browser + incus containers eat RAM fast. pureintent already dips into swap at light load; naiveintent has 55 GB free.
  • Disk strongly favors naiveintent. 4.3× faster sustained writes and 6× more free space, on a better drive. Agentic/dev I/O is write-heavy (nix store, git, node_modules, compile artifacts, logs). pureintent's QLC + DRAM-less drive at 77% full only degrades further. LUKS on naiveintent is effectively free (AES-NI).

Verdict

For doing heavy interactive + agentic work, naiveintent wins clearly — 2× RAM and 4× write throughput dwarf pureintent's ~7% multi-core edge.

The only caveat was form factor: a laptop that sleeps/roams makes a poor always-on host for a service like Kolu. naiveintent will be deployed always-on and plugged in, so that caveat is moot → migrate to naiveintent.

Migration notes

naiveintent's config is currently near-empty (kolu + gc); pureintent carries the workhorse stack. To port the setup from configurations/nixos/pureintent/default.nix:

  • Koluservices.kolu.host = "naiveintent" is already set. Revisit allowedOrigins (pureintent allows its Tailscale MagicDNS origin) and any Tailscale-IP binding.
  • home-manager shared modules naiveintent lacks: ssh-agent-forwarding, controlpersist, claude-code, work/juspay.nix, services/vira.nix, services/drishti.
  • incus stack (beszel.nix, incus) + the core.https_address preseed, if you want anywhen/containers and the incus UI.
  • remote builders (buildMachines + sincereintent.nix).
  • the dbus-broker / NetworkManager-wait-online activation workarounds.

Won't move cleanly:

  • drishti CI-fleet monitoring depends on pureintent-local ssh aliases (pu-managed ssh_config, kolu-ci-1..8, reachable only from pureintent). Either keep drishti on pureintent or move the pu state.
  • Decide whether pureintent is decommissioned or kept as a secondary builder.

Regardless of the outcome: GC pureintent — at 77% full on a degrading QLC drive it needs headroom.