Skip to content

Industric harness

Run HAL in a managed container or on your machine, with shared chat, history, and approvals.

Preview
Chat and local runs are in preview. Availability depends on your deployment.

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.

ToolWhat it does
readRead files or list a folder's contents.
writeCreate or replace a file.
editReplace selected text in a file.
apply_patchApply changes across one or more files.
globFind files by name or path pattern.
grepSearch text inside files.
shellRun commands, builds, tests, or background jobs.
process_outputList background jobs and read their output.
process_killStop a background job.
git_statusShow the current branch and changed files.
git_diffShow changes in file contents.
taskGive 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.

RuntimeProvidersShown in the dashboard as
Halanthropic | openai | openai_compatible | openrouter, a key is requiredIndustric

Give it a persistent workspace so conversations and files survive restarts:

hal.yaml· yaml
1apiVersion: autonomic.sh/v1alpha1
2kind: Agent
3metadata:
4 name: coder
5spec:
6 runtime: Hal
7 mode: supervised
8 phase: Active
9 goal:
10 inline: |
11 Fix failing tests in the payments service and explain each change.
12 provider:
13 type: anthropic
14 authMode: apiKey
15 workspace:
16 enabled: true
17 size: 10Gi

Instructions 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:

terminal· bash
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

Local access
Local runs use your account's permissions, files, tools, and processes, subject to Industric policies. They can access files outside the workspace. They do not run in a container or gain extra privileges.
FeatureLocal behavior
MCP servers, browser and app add-ons, mounted file systems, pod environment variables, memory attachmentsLeft out, with a warning at startup.
Required policy enforcement and external OPA decisionsMust be supported on your machine, or the run does not start.
Scheduled and workflow runsAlways run in the container.
Moving a conversation between machines, or between a container and your machineNot supported. --session resumes only on the same machine and workspace.