Skip to main content
These are the controls for what your agents are told and when. A domain decides when something is relevant, a rule is what gets said, a standard is a protocol that fires when you edit a matching file, and a star command is a switch you type straight into the chat. base context shows you the result of all of it without sending a prompt. The split worth holding on to: domains.toml holds triggers only, and the rule text lives in the graph. That is why base domain and base rule are two commands rather than one.
base domain remove and base rule remove take things away, and neither has a preview or a confirmation flag. base commands remove edits commands.toml in place. Everything else on this page is safe to run at any time.

Domains

A domain is a named bundle of triggers. When your prompt or the file you are editing matches one, everything attached to that domain becomes eligible to be injected. Read base domain list and base domain get as merged across both tiers. The write commands are not merged, and that catches people out, so see the tier note at the end of this section.

base domain list

Show every configured domain, from the global tier and this workspace together.

base domain get

Show one domain’s full configuration: its triggers, its mode, and what is attached.
The name is case-insensitive. Use this to confirm a trigger landed where you expected it.

base domain create

Create a new domain, optionally with its first trigger.

base domain add-trigger

Add a keyword or a path trigger to a domain that already exists.
Matching is plain substring and path matching. Nothing here is fuzzy or semantic, so a trigger either appears in the text or it does not.

base domain remove-trigger

Take a keyword or path trigger back off a domain.

base domain remove

Destructive. Remove a domain entirely, which stops its triggers from ever matching again.
The name is case-insensitive. This is a triggers-level delete: rules you added to that domain still exist in the graph, they simply have nothing left to fire them. If you want a domain quiet but recoverable, remove its triggers instead of removing the domain.

base domain sync

Read domains.toml into the graph, so that domains and their rules exist as entities you can query.
The domain write commands do not all use the same tier. create, remove-trigger and remove only ever touch the global ~/.base-gbl/domains.toml. add-trigger writes the workspace file instead. So a domain you create and then add a trigger to ends up split across two files, and a trigger you added in a workspace cannot be removed from the command line. list and get read both tiers merged, which is why the domain still looks correct while this is happening.Established from source at 4866996, the commit the shipped 0.13.2 binary was built from: add_trigger resolves the workspace base directory, while create_domain, remove_trigger and remove_domain all take the current directory as an unused argument and go straight to the global file. Until this changes, edit the workspace .base/domains.toml by hand when you need to take a workspace trigger off.

Rules

A rule is a line of text attached to a domain. When the domain matches, the rule is injected. base rule is the only command that carries a -g / --global flag, and it goes before the verb: base rule -g list --domain basemode. Putting it after the verb is invalid.

base rule add

Attach a rule to a domain, optionally with the reason behind it.
The rationale is worth writing. A rule with a reason attached survives being questioned; a bare imperative gets argued with.

base rule list

Show the rules attached to a domain.
The index printed against each rule is what base rule remove takes, so list before you remove.

base rule remove

Destructive. Remove one rule from a domain, by its index.
There is no preview and no confirmation. Indexes shift when a rule is removed, so re-run base rule list between removals rather than working down a list you printed earlier.

Standards

A standard is a protocol that injects when you edit a file it matches, rather than when you type a keyword. Standards come from a protocols.md source and are synced into standards.toml plus the graph.

base standards sync

Read the protocols source into standards.toml and the graph.

base standards list

Show every standard, with how many triggers and annotations each one carries.

base standards get

Show one standard’s full configuration.

base standards test

Dry-run the matcher against a file and see the scores and what would be injected. Nothing is written and nothing is sent.
This is the command to reach for before you rely on a standard firing. It answers “would this have injected” without you having to make an edit to find out.

Star commands

A star command is a named behaviour switch you type into the chat, like *audit. They live in commands.toml. base cmd is the short alias for base commands.

base commands list

Show every star command currently loaded.

base commands show

Show the full rules text behind one star command.
The name is case-insensitive and you leave the * off.

base commands add

Add a new star command. Rules are repeatable, so pass --rule once per line you want it to carry.

base commands remove

Destructive. Remove a star command from commands.toml.
Case-insensitive on the name, and no preview.

base commands import

Add star commands from another commands.toml file, such as a pack someone shared with you.
The import is append-only. Names already present are skipped rather than overwritten, and nothing before the appended block is altered, so importing the same pack twice is safe.

base context

Preview what a piece of text would pull, using the same matching that runs during an agent turn. Nothing is sent and nothing is written.
This is the fastest answer to “why did nothing arrive”. Paste the prompt you actually sent, and either a domain matches or it does not.