Skip to main content

Module reference

Each agent-facing module has a page below. To enable a module in an app, add it under tools.modules.<id> in the YAML; the language reference documents the shape of that block.

context_builder is auto-loaded on every app and is not declared explicitly for ordinary apps.

The live source of truth

These pages are the why and when. For the exact tools and parameters of any module, ask the running system: catalog.list_modules and catalog.describe_module <id> read the real registry the compiler validates against, so they can never be out of date. A builder agent should look modules up there rather than trusting any hand-written list.

By category​

Core I/O​

ModuleOne-liner
filesystemread, write, edit, multi_edit, glob, grep, delete.
bashRun shell commands from the session workdir.
httpHTTP requests.
webWeb search + fetch (extract is a fetch parameter, not a separate tool).
browserDrive a real browser session (open / act / read).
databaseConnect to a database (postgres, mysql, mongodb, redis).

Intelligence and orchestration​

ModuleOne-liner
memoryCognitive memory: goal, todos, facts (system catalog module).
agent_spawnSpawn sub-agents (modes via one Agent tool).
behaviorRuntime rule engine: pre/post-tool checks, semantic classifier.
context_builderAuto-loaded. Tool index, discovery meta-tools, prompt assembly.
schedulerRecurring session wake-up (schedule → digitorn-background).
llm_providerBrain / LLM call configuration.

Knowledge and retrieval​

ModuleOne-liner
ragHybrid retrieval over knowledge bases (BM25 + semantic, fused via RRF).
databaseConnect to an external SQL/NoSQL database (see Core I/O).
supabaseRun SQL against the app's own managed Postgres (run_sql).

Discovery and deployment​

ModuleOne-liner
catalogDiscover the real modules/tools with exact params (list_modules, describe_module).
deployPublish the built app to a live URL (publish_app, deployment_status).

UI / preview surfaces​

ModuleOne-liner
workspaceGit-backed change tracking (baseline / diff / approve). File I/O: see filesystem.
previewInspect and drive the live app preview pane.
previewshotHeadless screenshot of a built preview (gallery thumbs).

Built previews are also served over HTTP under the session preview URL served by Digitorn.

Widgets live under ui.widgets in the client manifest.

Integration​

ModuleOne-liner
mcpConnect to external MCP servers.
channelsBidirectional I/O: webhook, cron, rss, telegram, discord, whatsapp, connector.
connectorNative connectors (Gmail, Slack, GitHub, …) as agent tools.
lspLanguage Server Protocol diagnostics (notify_change, diagnostics).

Registered in digitornd: bash, browser, catalog, database, deploy, filesystem, http, lsp, mcp, connector, preview, previewshot, rag, scheduler, supabase, web, workspace. (The authoritative, always-current list is catalog.list_modules.)

System catalog modules (built into the runtime directly, not a separate registered module): memory, agent_spawn, context_builder, channels (manifest for background), behavior (configured via security.behavior, not tools.modules).

YAML aliases​

Written in YAMLBecomes at compile time
tools.modules.workspace (legacy file I/O intent)filesystem

The Git change-tracking module is still registered as workspace in the runtime; do not confuse it with the filesystem alias. bash has no separate shell alias - it's the module's own id.

Tool naming​

Modules expose actions via a fully-qualified name (FQN) like bash.run or filesystem.write. The LLM always calls the sanitised FQN (bash__run, filesystem__write - dots become double underscores for provider function-name compatibility); there's no short-name variant in the function-calling schema itself.

The short names you see in a tool call bubble (Bash, Write, Edit, Grep, Glob, Agent, Remember, ...) are a chat client display transform, computed client-side from the FQN's last segment - the daemon never sends a short name, and the model never sees one. When restricting per-agent module access (Agents - Tool surface), list the action names in their FQN suffix form ({ bash: [run] }, not { bash: [Bash] }).

How modules are exposed​

Modules are the runtime's built-in capability set. Each module exposes its own surface (config, params, constraints) that you wire up from YAML.