agentc
GitHubagentc-sh/agentc
agentc
GitHubagentc-sh/agentc
›Introduction
Get started›Concepts in 5 minutes›Build your first agent›Add your first tool›Serve and connect
Concepts›Architecture overview›The manifest›The compilation pipeline›Archetypes›The graph›Tools and capabilities›Runtime libraries›Skills›Agents and prompts›Serving and protocols›Observability
Guides›Author a manifest›Write a tool›Give your agent a filesystem›Control network egress›Connect external tools via MCP›Connect agents via A2A›Use the bash tool›Control tool access with capabilities›Write templated prompts›Manage prompts with Langfuse›Pass context from the client›Configure a model provider›Connect a CopilotKit frontend›Deploy a standalone binary›Deploy with Docker and PostgreSQL›Instrument with OpenTelemetry›Extend code generation with blocks
Reference
Manifest
›build›locals›runtime›filesystem›network
providers
›agent›graph›tool›skill›http_server
Runtime
›Observability

filesystem

The filesystem block declares the virtual filesystem the agent's components see.

The filesystem block declares what the agent's virtual filesystem contains. It is optional. When it is omitted, the agent has a single in-memory filesystem mounted at /, which is the same as writing:

agent.acl
filesystem {
  mounts = [
    {
      path = "/"
      backend = { kind = "memory" }
    }
  ]
}

Fields

FieldTypeRequiredruntime()DefaultDescription
mountslist of mount objectsnonoA single in-memory mount at /The mounts making up the virtual filesystem.

Mounts

Each mount has two fields:

FieldTypeRequiredDescription
pathstringyesWhere the backend is mounted in the virtual filesystem.
backendbackend objectyesWhat serves that path.

Later entries win. If two mounts target the same path, the later one replaces the earlier one.

Backends

Every backend object has a kind field written in snake case.

memory

A memory backend starts empty and exists only for the lifetime of the process.

agent.acl
filesystem {
  mounts = [
    {
      path = "/"
      backend = { kind = "memory" }
    }
  ]
}

This backend has no additional fields.

host

A host backend exposes a real host directory inside the virtual filesystem.

FieldTypeRequiredDefaultDescription
rootstringyesThe host directory this mount exposes.
follow_symlinksbooleannofalseWhether a symbolic link inside the mount may resolve outside its root.
agent.acl
filesystem {
  mounts = [
    {
      path = "/workspace"
      backend = {
        kind = "host"
        root = "./workspace"
      }
    }
  ]
}

Nothing above root is reachable.

read_only

A read_only backend wraps another backend and refuses every write through it.

FieldTypeRequiredDescription
innerbackend objectyesThe backend to expose as read only.
agent.acl
filesystem {
  mounts = [
    {
      path = "/reference"
      backend = {
        kind = "read_only"
        inner = {
          kind = "host"
          root = "./reference"
        }
      }
    }
  ]
}

overlay

An overlay backend reads from an upper backend first and falls through to a lower backend. Writes go to the upper backend.

FieldTypeRequiredDescription
upperbackend objectyesThe writable layer checked first.
lowerbackend objectyesThe fallback layer checked second.
agent.acl
filesystem {
  mounts = [
    {
      path = "/workspace"
      backend = {
        kind = "overlay"
        upper = { kind = "memory" }
        lower = {
          kind = "read_only"
          inner = {
            kind = "host"
            root = "./workspace"
          }
        }
      }
    }
  ]
}

read_only and overlay both nest backends rather than paths, so any composition is expressible.

Precedence

Three sources compose into the final filesystem view, and a later registration at the same path wins:

  1. Mounts contributed at compile time.
  2. The manifest's mounts.
  3. The operator's binds.

Operator binds

The topology is otherwise fixed when the agent is compiled. Operator binds are the runtime-adjustable part.

VariableMeaning
AGENT__FILESYSTEM__BINDS__<n>__PATHWhere the bind appears in the virtual filesystem.
AGENT__FILESYSTEM__BINDS__<n>__ROOTThe host directory it exposes.
AGENT__FILESYSTEM__BINDS__<n>__READONLYWhether writes through it are refused.
AGENT__FILESYSTEM__BINDS__<n>__FOLLOW_SYMLINKSWhether a symbolic link may resolve outside the root.

See agentc:fs for what component code sees and Give your agent a filesystem for the step-by-step recipe.

← PreviousruntimeNext →network

© 2026 pogue.dev. All rights reserved.

Creative CommonsCC BY 4.0
On this pageFieldsMountsBackendsmemoryhostread_onlyoverlayPrecedenceOperator binds

Search docs

Search the agentc documentation