Fail-closed controllers
Non-root gVisor containers, read-only roots, empty capabilities, bounded resources, private state, and no direct network.
An open-source NixOS flake for running Hermes and ZeroClaw with fail-closed containers, brokered egress, disposable workers, and reproducible operations.
One NixOS brain · Many AI tentacles.
3 · Read the evaluated result
{ mkHermesAgent, mkZeroClawAgent, ... }:
[
(mkHermesAgent { name = "assistant"; autoStart = false; })
(mkZeroClawAgent { name = "researcher"; autoStart = false; })
]The installed default. A setting that would weaken the sandbox makes the configuration fail to build instead.
balanceddevstrict[ the agent world · illustrated ]
Each controller has its own illustrated capsule and service paths.
Exact models and budgets; provider keys stay on the host.
A separate Unix socket to the pinned research service.
Queued tool jobs in a disposable environment without egress.
Persistent state with a fixed-size filesystem quota.
The blue tentacles represent Tentaflake’s environment; they are not additional network routes.
Illustrated balanced topology, not live activity or security evidence. dev removes the container policy and is not a security boundary. Profile limits.
[ 01 · boundaries first ]
Every capability is declared at the layer that can actually enforce it. Unknown runtime evidence stays unknown instead of becoming a green status.
Non-root gVisor containers, read-only roots, empty capabilities, bounded resources, private state, and no direct network.
A per-agent LLM broker enforces exact models, request and daily budgets, and credential substitution. The provider key never enters the capsule.
Web access goes only through the pinned secure-research-tool relay. Provider-hosted web tools are rejected, and retrieved content stays untrusted.
Fixed-size Btrfs workspaces, optional private-state quotas, disposable offline workers, explicit approvals, and encrypted backups. Review storage limits and migration.
[ 02 · architecture ]
The controller never receives the host runtime socket or a real provider credential. Model calls, web research, tool execution, and persistent storage each have a distinct enforcement layer.
Explore the architecture[ 03 · security evidence ]
A successful build proves the candidate closure, not the live host. tentaflake keeps configured policy, live evidence, and unknowns apart.
Read the threat modeltentaflake doctor --security separates configured policy, live evidence, warnings, and unknowns.
An external attacker node exercises denied ports, metadata access, direct DNS, private ranges, resource ceilings, and reboot recovery.
The threat model does not claim prompt-injection resistance, daemon-level UID remapping, a separate kernel, or deployment proof from evaluation alone.
[ 04 · start safely ]
Build the installer ISO, test it in a disposable UEFI VM, then install to an explicitly selected disk.
Open the install guideImport the module, declare a stopped capsule, evaluate and build first, then activate in a controlled window.
Read the secure quickstartmy-agents.nixnix build the toplevel, without activationnixos-rebuild switch in an approved windowtentaflake doctor --security on the live host[ 05 · agent-native ]
The documentation is plain text at predictable URLs, pinned to an exact source commit. Point Claude, ChatGPT, Gemini, or your coding agent at it and let it explain any chapter. Then check its answer against the page it cites.
Read https://docs.tentaflake.dev/llms.txt, then the install guide and the secure quickstart it links to. Ask me about my hardware and whether this is a new machine or an existing NixOS host. Then write a step-by-step plan. Do not run any command that formats a disk or activates a configuration.An assistant can be wrong. Building is not activating: disk writes, nixos-rebuild switch, and credentials stay with the operator.
[ 06 · skills ]
A skill is a short instruction file an agent loads when a task matches it. Install the tentaflake skill into Claude Code, Codex, Cursor, Gemini CLI, or another compatible agent, and it knows where the docs live and which steps it must leave to you.
Maps tasks to documentation pages and carries the rules that hold everywhere: stay on balanced, keep secrets out of Nix, and never activate without approval.
npx skills add \
https://tentaflake.dev/.well-known/agent-skills/tentaflake/SKILL.mdInspect or maintain a deployed Tentaflake host through its authorized Tailscale SSH management path.
Change or diagnose declarative Hermes settings while preserving Tentaflake's read-only configuration and broker boundaries.
Maintain one Hermes instance's memory, personality and seeds without overwriting runtime state or exposing private context.
Configure or diagnose Hermes model access through Tentaflake's host-held LLM broker credentials and exact model policy.
Adjust Hermes tools and output limits without bypassing Tentaflake's Research or disposable-worker policy.
Review a Tentaflake change for a concrete requirement, proportionate verification, synchronized docs and a complete PR.
Locate the owning source, guide and checks before changing Tentaflake modules, adapters, CLI or installer.
[ 07 · agent adapters ]
Hermes and ZeroClaw retain their existing integrations through mkAgent and compatible legacy builders. Generic OCI definitions use the same containment but remain stopped pending capability admission; model and Research hooks are not accepted. OpenClaw is registered as a stopped scaffold. Review the adapter contracts and acceptance gaps.
Discover presets with tentaflake runtimes --json. On installed hosts, agent template and agent validate|plan|import prepare stopped additions without rebuilding, activating, or starting services. Read the onboarding workflow.
A capable general agent controller with a dedicated non-root identity and private workspace.
A compact autonomous runtime held to the same final container policy and broker boundary.
The adapter exists, but creates no OCI container and refuses startup. A reviewed image, model transport, Research discovery, and isolated execution still need runtime acceptance.
[ 08 · product roadmap ]
The delivery order: a common isolated runtime and installed-host onboarding, then coding-agent acceptance, employee profiles, controlled business connections and company workflows. Read the release-pinned guides for delivered foundations; remaining milestones describe future capabilities.
M01–M02
M03–M04
M05–M07
M08–M10
GitHub snapshot · Planning source e21be47. Delivery gates describe dependencies; dates and release versions are not promised.
[ 09 · direct answers ]
tentaflake is an open-source NixOS flake template for operating isolated AI agent controllers on hardware you manage. It provides the host, container, policy, worker, storage, and verification layers; it does not implement an agent model or hosted control plane.
The 0.4 release line integrates Hermes and ZeroClaw through mkAgent and compatible runtime-specific builders, with the same final container security policy. Generic digest-pinned OCI definitions and preset discovery are available, but generic workloads remain stopped pending capability admission; model and Research hooks are not accepted. OpenClaw is only a stopped scaffold: no runtime image, model transport, Research discovery, or worker routing has been accepted. Review the adapter guide for support and evidence limits.
Balanced agents run non-root through gVisor with a read-only root filesystem, no capabilities, bounded resources, no published ports, and no direct network. Automatically started controllers also require an exact LLM broker, disposable worker, fixed-size workspace, and research relay declaration.
No. You supply an approved provider or local endpoint. Real provider credentials stay on the host and enter the broker through runtime-only systemd credentials. An agent receives a short-lived virtual credential scoped to its declared policy.
Only through the pinned secure-research-tool relay, which you configure and enable per agent. Native web tools, provider-hosted web search, and the legacy fetch broker are disabled for research agents, and retrieved content stays untrusted.
Yes. Every documentation page has a Markdown twin, the whole documentation is available as one file, and each chapter opens in Claude, ChatGPT, Gemini, Perplexity, Le Chat, or Grok with a prompt that points at that page. Verify what an assistant tells you against the page it cites.
tentaflake is explicitly pre-1.0. The repository documents enforced controls, evidence gaps, residual risks, and a deployment acceptance checklist. Pin a release, read the threat model, and validate the exact target host before relying on it.

[ declare · verify · activate ]