buddie
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BUDDIE_LOG | No | Hook run log; 0 turns it off. | ~/.cache/buddie/hook.jsonl |
| BUDDIE_FETCH | No | Set to 0 so the hook uses stored snapshots only instead of downloading cited pages. | on |
| BUDDIE_FINAL | No | Regex marking a final answer that must carry anchors at any event; with none, the last message at Stop is the final answer; empty turns the rule off. | final_mark in [mandate] of buddie.toml, else none |
| BUDDIE_GATES | No | class=level,... overrides the default levels of the gates. | [gates] of buddie.toml |
| BUDDIE_INTRO | No | The intro mode's count per buddie.toml; 0 keeps none. | ~/.cache/buddie/intro.json |
| BUDDIE_REPOS | No | dir:dir pairs of repositories used to check repo anchors. | git repos around the working directory |
| GITHUB_TOKEN | No | Alternative GitHub API token used for pr: and ci: anchors (public repos work without one, within rate limits). | |
| BUDDIE_GITHUB | No | Set to 0 to make no GitHub calls; pr: and ci: anchors become UNCHECKABLE. | on |
| BUDDIE_STORES | No | dir:dir extra snapshot stores the hook reads along with the session's own. | none |
| BUDDIE_LESSONS | No | Set to 0 for no lessons at SessionStart. | on |
| BUDDIE_NUMBERS | No | gap, fail or off: how the receipt judges a number missing from its source. | from the numbers level |
| VERBATIM_STORE | No | Snapshot store used to keep the bytes of every cited source. | ./.verbatim |
| BUDDIE_SHARED_LOG | No | Second log, one file per session; 0 turns it off. | /mnt/project-files/buddie/hook, only if that folder exists |
| BUDDIE_GITHUB_TOKEN | No | GitHub API token used for pr: and ci: anchors (public repos work without one, within rate limits). | |
| BUDDIE_JOURNAL_TEXT | No | Set to 1 so the journal also keeps promise sentences, choice and decision cards as text. | [journal] text of buddie.toml, else off |
| BUDDIE_CONTEXT_LIMIT | No | Context tokens past which a non-final reply is returned; 0 turns it off. | 200000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| verify_reportA | Check a report before accepting or passing it on: every quote must be in the bytes of the source it links to (verbatim), every |
| snapA | Snapshot URLs (bytes by sha256) so quotes can be taken from and checked against them. Call it before quoting a page, then copy the words from source_text and link the same URL. |
| source_textA | Visible text of a snapshot (URL or sha256 prefix). With grep, only the matches with context (the first few, overlapping ones merged; prefer grep to reading the whole page). Copy quotes from here character for character, put them in quotation marks “…” or «…», and link the snapshot's URL right after the quote in the same sentence. |
| summaryC | When no subagent is left: the summary built by code from the hook's records (what each subagent did with its receipt outcome, who was lost, the next steps with auto/ask verdicts, open PRs and red CI) and |
| environment_snapshotA | Before giving system-specific instructions (install commands, drivers, setup), observe the parts of this machine the task needs instead of guessing: ask only for those categories (list: true names them). buddie collects what the person granted in their local grants file and the administrator's protected policy allows; anything else comes back denied, unsupported or unavailable with the reason. A request cannot grant: there is no consent argument, and an approval of this call is not a grant. The grants file states the person's intent; an agent with their file access could edit it, so only the protected policy is a ceiling it cannot change. This tool collects diagnostics categories only, never files or reports. Each observation says what it rests on (basis); unavailable means not observed, not absent. Nothing is installed or changed. |
| feedback_startA | Check a report and open a verification feedback chain (docs/feedback.md): buddie runs the check itself, keeps the chain and its check options in files of its own, and returns a feedback-v1 with at most one bounded action per finding. To answer it, correct only what an action names and call feedback_resolve. Feedback is advice: a verified report is not a finished task unless the requirements you state are met (state.task). |
| feedback_resolveA | Answer a chain's open feedback with one corrected text: buddie checks the corrected text itself with the chain's own check options, judges the correction (scope, no added lines but 'buddie:' disclosures, verified claims kept) and appends the decision to the chain. Returns the decision and the next feedback. A refused submission (code) changes nothing. |
| feedback_acceptA | Before accepting a final report from a feedback chain: whether it is the text the chain verified. accepted is true only when the chain's disposition is verified and the report is byte for byte the chain's last accepted text; a report edited afterwards, a refused repair handed in anyway, or any report of a chain that is not verified is refused (reason). Reads the chain, checks nothing, changes nothing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
The set splits into reasonably clear clusters (snap/source_text for quotes, environment_snapshot for machine state, summary for status), but four tools — verify_report, feedback_start, feedback_accept, feedback_resolve — all revolve around 'checking a report' and their boundaries only become clear from long, dense descriptions. An agent could easily call verify_report when it wanted feedback_start, or feedback_accept when it wanted feedback_resolve.
The feedback_* family (feedback_start, feedback_accept, feedback_resolve) is internally consistent verb_noun, and verify_report follows that pattern. But the rest mix bare verbs (snap), bare nouns (summary, source_text) and noun compounds (environment_snapshot), so there is no single predictable convention across the set.
Eight tools is a comfortable size for this workflow and each lifecycle stage (snapshot → quote → verify → feedback → summarize) has representation. The only redundancy is between the standalone verify_report and the checking that feedback_start already performs, which could arguably be one tool.
The core loop is covered end to end: snap captures bytes, source_text extracts quotes, verify_report checks them, feedback_start/resolve/accept run and close a chain, and summary reports status. Minor gaps exist — no way to list or discard existing snapshots, and no direct tool to inspect a chain's state without going through feedback_accept or summary.