v0.4.37pre-1.0MIT

Isolated AI agents, declared with NixOS.

An open-source NixOS flake for running Hermes and ZeroClaw with fail-closed containers, brokered egress, disposable workers, and reproducible operations.

Read the docsQuickstartView on GitHub
Ask an AI

One NixOS brain · Many AI tentacles.

my-agents.nix

3 · Read the evaluated result

{ mkHermesAgent, mkZeroClawAgent, ... }:
[
  (mkHermesAgent { name = "assistant"; autoStart = false; })
  (mkZeroClawAgent { name = "researcher"; autoStart = false; })
]
profile balancedenforced at evaluation
runtime
gVisor
user
non-root
root filesystem
read-only
capabilities
none
network
none until brokered
provider key
never in the capsule

The installed default. A setting that would weaken the sandbox makes the configuration fail to build instead.

Security profiles
balanced
Default for agents that run unattended. Each runs sealed in its own sandbox and reaches models only through the LLM broker and the web only through the research relay.
dev
For trusted local development. The container policy is off, so it is not a security boundary.
strict
Reserved for future high-risk work. It needs a separate-kernel boundary that is not built yet, so the configuration does not build; there is no fallback.
Illustrative replay of documented behavior.
platform
NixOS · x86_64-linux
controllers
Hermes + ZeroClaw
default profile
balanced
license
MIT
docs
human + agent readable

[ the agent world · illustrated ]

A shared host. An environment for each agent.

Each controller has its own illustrated capsule and service paths.

HermesZeroClawSupported adapters

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.

Useful agents without ambient authority.

Every capability is declared at the layer that can actually enforce it. Unknown runtime evidence stays unknown instead of becoming a green status.

01 / isolate

Fail-closed controllers

Non-root gVisor containers, read-only roots, empty capabilities, bounded resources, private state, and no direct network.

02 / broker

Narrow model access

A per-agent LLM broker enforces exact models, request and daily budgets, and credential substitution. The provider key never enters the capsule.

03 / research

One path to the web

Web access goes only through the pinned secure-research-tool relay. Provider-hosted web tools are rejected, and retrieved content stays untrusted.

04 / recover

Bounded state and work

Fixed-size Btrfs workspaces, optional private-state quotas, disposable offline workers, explicit approvals, and encrypted backups. Review storage limits and migration.

One host. Separate control paths.

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
  1. 01NixOS hostdeclarative policy · systemd · OCI runtime
  2. 02Agent controllerHermes or ZeroClaw · gVisor capsule · no ambient network
  3. 03aLLM brokerexact models, budgets, virtual keys
    03bResearch relaypinned secure-research-tool
    03cWorkerdisposable, offline, behind approval
    03dStoragebounded workspace · optional state quota

Claims stay attached to evidence.

A successful build proves the candidate closure, not the live host. tentaflake keeps configured policy, live evidence, and unknowns apart.

Read the threat model
TFSEC

Machine-readable posture

tentaflake doctor --security separates configured policy, live evidence, warnings, and unknowns.

VM

Negative integration tests

An external attacker node exercises denied ports, metadata access, direct DNS, private ranges, resource ceilings, and reboot recovery.

MODEL

Documented non-goals

The threat model does not claim prompt-injection resistance, daemon-level UID remapping, a separate kernel, or deployment proof from evaluation alone.

Choose the path that matches your host.

new machine

Install a dedicated host

Build the installer ISO, test it in a disposable UEFI VM, then install to an explicitly selected disk.

Open the install guide
existing NixOS

Add tentaflake as an input

Import the module, declare a stopped capsule, evaluate and build first, then activate in a controlled window.

Read the secure quickstart
  1. 01Declarea stopped capsule in my-agents.nix
  2. 02Buildnix build the toplevel, without activation
  3. 03Activatenixos-rebuild switch in an approved window
  4. 04Verifytentaflake doctor --security on the live host

Written for people. Readable by agents.

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.

starter prompt · paste into a coding agent
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.

Skills your agent can load.

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.

published by this site

tentaflake

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.

Read the skill before installing
install with the skills CLI
npx skills add \
  https://tentaflake.dev/.well-known/agent-skills/tentaflake/SKILL.md

Bundled with the repository

  • handle-the-host

    Inspect or maintain a deployed Tentaflake host through its authorized Tailscale SSH management path.

  • hermes-config-manager

    Change or diagnose declarative Hermes settings while preserving Tentaflake's read-only configuration and broker boundaries.

  • hermes-memory-personality

    Maintain one Hermes instance's memory, personality and seeds without overwriting runtime state or exposing private context.

  • hermes-provider-setup

    Configure or diagnose Hermes model access through Tentaflake's host-held LLM broker credentials and exact model policy.

  • hermes-tools-config

    Adjust Hermes tools and output limits without bypassing Tentaflake's Research or disposable-worker policy.

  • tentaflake-change-review

    Review a Tentaflake change for a concrete requirement, proportionate verification, synchronized docs and a complete PR.

  • tentaflake-repo-guidance

    Locate the owning source, guide and checks before changing Tentaflake modules, adapters, CLI or installer.

Shared adapters. Explicit runtime status.

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.

H

Hermes

A capable general agent controller with a dedicated non-root identity and private workspace.

Z

ZeroClaw

A compact autonomous runtime held to the same final container policy and broker boundary.

OpenClaw · stopped scaffold

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.

From isolated agents to AI employees.

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.

  1. M01–M02

    Runtime & coding acceptance

    Planned
    • M01Add an agent on an installed host without changing security code
    • M02Two different agents perform repository work inside the same enforced boundary
  2. M03–M04

    Employees & isolated contexts

    Planned
    • M03Manage people, teams, personas and permissions
    • M04One employee can safely perform many roles
  3. M05–M07

    Connections & collaboration

    Planned
    • M05Controlled business access and external effects
    • M06Useful coverage of everyday company programs
    • M07Autonomous multi-step work with human participation
  4. M08–M10

    Operations, console & release

    Planned
    • M08Observable and recoverable unattended operation
    • M09One place to manage employees and business work
    • M10Clearly documented, tested support and upgrades

GitHub snapshot · Planning source e21be47. Delivery gates describe dependencies; dates and release versions are not promised.

[ 09 · direct answers ]

Questions, answered precisely.

What is tentaflake?

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.

Which agent runtimes are supported?

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.

What does balanced security mean?

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.

Does tentaflake include an LLM provider?

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.

Can an agent browse the web?

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.

Can my AI assistant read the documentation?

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.

Is version 0.4 production-ready?

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 ]

Start with the security boundary, not the container command.