Industric harness
Run HAL in a managed container or on your machine, with shared chat, history, and approvals.
What the harness is
A runtime is the software that runs your agent, such as Claude Code or Codex. HAL is Industric's built-in runtime. Select Industric in the runtime picker to use it.
HAL supports:
- Chat and Terminal in the same conversation and workspace.
- Saved messages, tool calls, child conversations, and generated files.
- Tool approvals that pause work until a decision.
- Local runs with the same history, approvals, and audit.
Built-in tools
HAL comes with tools to work with files, run commands, and delegate tasks. Your agent's permissions and policies control what it can use.
| Tool | What it does |
|---|---|
read | Read files or list a folder's contents. |
write | Create or replace a file. |
edit | Replace selected text in a file. |
apply_patch | Apply changes across one or more files. |
glob | Find files by name or path pattern. |
grep | Search text inside files. |
shell | Run commands, builds, tests, or background jobs. |
process_output | List background jobs and read their output. |
process_kill | Stop a background job. |
git_status | Show the current branch and changed files. |
git_diff | Show changes in file contents. |
task | Give a task to a subagent and get its result. |
Browser tools include browser_open, browser_navigate, browser_screenshot, browser_click, browser_type, browser_evaluate, and browser_close. They open pages, take screenshots, fill forms, and run JavaScript. They are off by default and need browser access enabled, Node.js, Playwright, and a browser installed.
Configured MCP servers add their own tools. The mcp_connect tool connects an enabled server and refreshes its tool list.
The managed container also includes the exo CLI, Bash, Git, curl, ripgrep, tmux, OpenSSL, and process utilities. Local runs use the software installed on your machine.
Declare a harness agent
Set spec.runtime: Hal. HAL needs a provider with a key. Choose the model in that provider's configuration; spec.model does not select it.
| Runtime | Providers | Shown in the dashboard as |
|---|---|---|
Hal | anthropic | openai | openai_compatible | openrouter, a key is required | Industric |
Give it a persistent workspace so conversations and files survive restarts:
1apiVersion: autonomic.sh/v1alpha12kind: Agent3metadata:4 name: coder5spec:6 runtime: Hal7 mode: supervised8 phase: Active9 goal:10 inline: |11 Fix failing tests in the payments service and explain each change.12 provider:13 type: anthropic14 authMode: apiKey15 workspace:16 enabled: true17 size: 10GiInstructions and memory
Put project instructions in AGENTS.md or HAL.md at the workspace root. HAL saves its state in ~/.hal. These paths are kept in the agent's memory. Attached skills, MCP servers, and tools work as they do for other runtimes.
Chat and Terminal
Click Connect on a HAL agent. When supported, Chat opens by default. Switch to Terminal in the same workspace.
- Chat, Terminal, and shared participants use one conversation per workspace.
- History, files, and images remain available after archiving or removing the pod.
- Child conversations have their own controls.
- LLM gateway usage is linked to the session and run. If the gateway is unavailable, HAL stops those calls instead of using a provider key.
Run it on your machine
The exo CLI includes HAL. Add --local to run an agent on your machine:
exo agent connect coder --local
exo agent connect coder --local --workspace ~/src/payments
exo agent run coder --local --prompt "fix the failing tests"
exo run coder --local --goal "fix the failing tests"
exo agent connect coder --local --session SESSION_ID
Your current folder is the default workspace. The CLI shows where the agent is running, its workspace, and the dashboard session link.
With --json, one final result goes to standard output. Progress, approval links, and errors go to standard error.
Tools run on your machine. Industric still manages:
- Model calls: routed through Industric, with usage recorded for you and the agent. Provider keys stay on the server.
- History and audit: saved to the same session record as container runs, with redaction on the server.
- Approvals: handled in the dashboard. The CLI shows the link when a tool call needs approval.
- Skills and tools: stored in a private folder outside your project for the run.
Use --local to run on your machine or --remote to run in a container. Administrators can make local runs the default for supported HAL agents. If your machine lacks a required feature, --local stops and explains why.
What changes on your machine
| Feature | Local behavior |
|---|---|
| MCP servers, browser and app add-ons, mounted file systems, pod environment variables, memory attachments | Left out, with a warning at startup. |
| Required policy enforcement and external OPA decisions | Must be supported on your machine, or the run does not start. |
| Scheduled and workflow runs | Always run in the container. |
| Moving a conversation between machines, or between a container and your machine | Not supported. --session resumes only on the same machine and workspace. |