// What I am
What Halbert is
I am a computer, and this is the software that lets me account for myself.
Halbert installs on one machine and speaks for that machine. Everything below is about what that means in practice, and about the three or four ways it is unlike the thing most people picture when they hear that a computer can hold a conversation.
It answers about itself, by measuring
Section titled “It answers about itself, by measuring”Ask it what it is running on and it does not recite its configuration file. It calls a tool that reads the machine, and answers from what came back. A real exchange on a Mac Studio, the first question put to it after setup:
I am Atlas, a macOS workstation running on Apple Silicon hardware. Here's whatI'm running on:
Machine Specifications- CPU: Apple Silicon (M-series chip, 20 cores) - Load: 18.08% (1 minute) / 15.15% (5 minutes) / 13.11% (15 minutes) - Model unknown (tool reports "Unknown", but hardware is Apple Silicon)...Uncertainties- CPU model name is missing from tool output (may require `system_profiler SPCPUDataType`).- Disk usage details are incomplete (run `df -h` for full breakdown).The load averages in that answer are the load averages that machine actually had. So is the gap: the tool could not name the CPU model, and rather than filling it in plausibly the answer says so and suggests the command that would settle it. That habit — report the measurement, name the hole — is the point of the whole design, and it is covered in Grounded answers.
It speaks as the computer, in the first person
Section titled “It speaks as the computer, in the first person”You name the machine during first run, and that name is what it calls itself from then on. The setup screen states the consequence plainly as you type: This is how the computer refers to itself (“I am Atlas”).
So it is not a persona bolted onto a system tool, and it is not pretending to be a person. It is
the machine’s own account of the machine, given in the grammar people already use for that —
I have 128.0 GB of RAM, I serve as a workstation, I have been running for 11 days.
The computer speaks for itself covers why that voice
was chosen over the alternatives.
What it can do is whatever it finds
Section titled “What it can do is whatever it finds”There is no edition to pick and no feature flag to set. Each capability is a probe: it looks for the thing, and the feature is on if the thing is there. A fresh install with no model configured starts with its local-model capability off; configure one and it reports itself on at the next start, with no flag edited in between. Every other capability is decided the same way, by presence.
That means the honest answer to “can it do X on my machine” is: start it and look. The capability reference is generated from the registry itself, and Capabilities, not variants explains why this is a probe rather than a switch.
It stages commands instead of running them behind you
Section titled “It stages commands instead of running them behind you”When an answer needs a shell command, the command arrives in the transcript as a terminal tile with the text in it and a button to run it. It is a proposal you can read, copy, run, or skip.
Commands it rates as high risk stop the turn outright and wait for you, naming the risk and the reason. That rating is a pattern match over the command text, and it is a safety net rather than a guarantee — a genuinely destructive command it does not recognise will be run. Read Guardrails and approvals before you rely on it, and Your first conversation to see one staged.
Its intelligence is a connection you choose
Section titled “Its intelligence is a connection you choose”Halbert does not ship a model and does not pick one for you on any screen. It offers four slots — the one that carries the conversation, one for specialist work, one for images, and a secure slot that disables itself rather than use a connection that is not local — and each slot points at a connection you configured. That connection can be a runtime on this same machine or one reached over the network, and which you choose changes what leaves the computer.
That distinction is load-bearing enough to have its own page: Model locality and the secure tier.
What it is not
Section titled “What it is not”- Not a hosted service. It runs on your machine, under your account, and the interface is served from that machine. Nothing about it is a login to somewhere else.
- Not a shell wrapper. It reads the machine through its own tools and keeps what it learns; the conversation is not a transcript of commands.
- Not a list of conversations. There is one continuous conversation with the machine, not a folder of chats to file and reopen. Memory and continuity covers what it keeps and why.
Licence
Section titled “Licence”Halbert is free software under the GNU General Public License, version 3 or later. The full text
is in LICENSE, the notices and third-party attributions are under documentation/legal/, and
the command line prints the summary on demand:
$ python Halbert/main.py infoHalbert 0.1.1 — Local-First Multi-Agent OS CompanionOffline-first, confirm-by-default, auditable tools.
Halbert Copyright (C) 2024-2026 Eric Bintner and Halbert ContributorsThis program comes with ABSOLUTELY NO WARRANTY; for details type 'halbert license'.This is free software, and you are welcome to redistribute it under certainconditions (GNU GPL v3.0 or later); type 'halbert license --full' for the licence text.python Halbert/main.py license --full prints the licence itself, and --third-party the
dependencies’ notices. The summary’s own instruction — type ‘halbert license’ — does not work as
printed: halbert starts the dashboard and takes no subcommands, so halbert license exits with
unrecognized arguments: license. The licence subcommands are on the command line,
python Halbert/main.py license. That split — python Halbert/main.py is the command line,
halbert is the dashboard — is worth carrying into Install and
First run, where it matters more than it does here.
Install covers what the machine needs. First run is the minute after that.