Skip to content
Agents for Humanity
Public draft. All results are preliminary desk assessments against criteria v1.0, updated 27 Sept 2026. No agent has been certified yet. How we assess
Open sourceself-hostedApache-2.0

goose

Agentic AI Foundation · goose-docs.ai

goose is an Apache-2.0, locally run agent that keeps its config, sessions and memory in YAML, SQLite and text files. It supports local models and has runtime-enforced tool permissions, overridable prompt templates and opt-in telemetry, which makes it strong on transparency, modifiability and control. Its exit path is manual rather than single-action, actions are recorded only after they run and can be edited without trace, and it has no verifiable identity or attributable messages.

Strengths
  • Apache-2.0, neutral Linux Foundation (AAIF) governance
  • Plain-file state: YAML config, SQLite sessions, text memory
  • Built-in local inference plus Ollama and 15+ providers
  • Runtime-enforced approval modes and per-tool permissions
  • Prompt templates overridable; LLM request payloads logged locally
  • Usage data opt-in, off by default
Gaps
  • No single-command full-agent export; per-session export only
  • Actions recorded only after they run; record not tamper-evident; logs rotate
  • No verifiable agent identity or attributable messages
  • Secrets default to OS keyring, which does not travel with files
  • Reproducible builds not documented
  • No owner control over which hosts or recipients tools reach
Evidence

All 34 findings

goose v1.52.0 (released 2026-09-23) from the aaif-goose/goose repo, and the goose-docs.ai documentation as of 2026-09-27. The project moved from Block to the Agentic AI Foundation (AAIF) at the Linux Foundation.

Portable · Can you leave, and take the whole agent with you?

75%
  • P1
    Round-trip portability

    Not restorable in one action: the local files are complete and immediately available, but there is no whole-agent export or import, so config.yaml, memory files and keyring secrets must be copied or re-entered by hand (sessions export and import only one at a time).

    Partial
  • P2
    Complete export

    Everything that defines the agent sits in documented local files (config.yaml, permission.yaml, prompts/, memory/, recipes and sessions.db), so a copy of those locations is complete and nothing is held by the project. Secrets default to the OS keyring and must be moved separately.

    Pass
  • P3
    Independent execution

    goose is Apache-2.0 software that runs entirely on the owner's machine with no required foundation server, and its built-in local inference or Ollama allows fully offline operation.

    Pass
  • P4
    Identity continuity

    goose has no agent identity that others could check after a migration; sessions and installations carry only local identifiers.

    Fail
  • P5
    No kill switch

    There is no license check, account requirement or remote feature flag. Governance and the trademark sit with the Linux Foundation's AAIF, and the desktop app's update check can be controlled by the owner.

    Pass
  • P6
    Capability independence

    Tools come from MCP extensions and built-ins executed by the goose runtime, so they stay available with any supported provider, including local models. Models without native tool calling can use an experimental tool shim.

    Pass

Transparent · Can you see everything the agent is, with ordinary tools?

100%
  • T1
    Open storage format

    Config is YAML, sessions are in a documented SQLite database that can be queried with sqlite3, memories are text files, and logs are JSON/JSONL.

    Pass
  • T2
    No hidden instructions

    Default prompt templates are published in the open-source repo, and nine of them (including system.md) can be overridden. Recent LLM requests, including the full input payload, are also logged locally as JSONL.

    Pass
  • T3
    No shadow memory

    goose has no hosted backend holding user data, and the docs say its log files stay local. Opt-in usage data excludes conversations and code, although opted-in events carry a stable installation identifier. Model providers apply their own policies.

    Pass
  • T4
    Complete action history

    Every session's messages, including tool requests and responses, are stored in the local sessions.db and can be exported per session as JSON. CLI logs also capture tool calls but are deleted after two weeks.

    Pass
  • T5
    Readable logic

    Recipes are YAML files, hints and prompt templates are Markdown, and the runtime is open-source Rust and TypeScript. MCP extensions are separate programs whose readability depends on the extension.

    Pass
  • T6
    No third-party influence channel

    No advertising or sponsored-content channel was found. Third-party content reaches the context only through extensions the owner enables, and the owner can view and disable them.

    Pass

Auditable · Can you reconstruct exactly what the agent did?

50%
  • A1
    No unrecorded actions

    Tool requests and results are stored durably in sessions.db, but only after the tools have run, so an action still takes place if its record cannot be written.

    Partial
  • A2
    Tamper evidence

    Session rows and log files can be edited or deleted without any trace. Logs also rotate: CLI and server logs after two weeks, and LLM request logs after the last 10 requests.

    Fail
  • A3
    Separation from the audited

    The Developer extension's shell and file tools run as the user without a sandbox, so the agent can modify sessions.db and its logs. Permissions only allow, ask for or block whole tools, and the default autonomous mode asks for nothing.

    Fail
  • A4
    Readable with ordinary tools

    Session records (SQLite), CLI logs (JSON) and LLM request logs (JSONL) can be read with general-purpose tools.

    Pass
  • A5
    Corroborated interactions

    Orchestrator subagent sessions are stored in sessions.db with their parent session ID, and the parent's tool calls name the subagent session they address, so both sides log a shared identifier. goose has no channel to independent agents beyond this.

    Pass

Verifiable · Can you prove the agent runs what it claims?

50%
  • V1
    Open, reproducible runtime

    The runtime is open source under Apache-2.0, an OSI-approved license. No reproducible-build process or verification was found in the public documentation.

    Partial
  • V2
    Active config is inspectable config

    Behavior comes from config.yaml, permission.yaml, prompt overrides and documented GOOSE_* environment variables, all of which the owner can inspect. Cached smart-approval decisions are also written to permission.yaml.

    Pass
  • V3
    Attributable messages

    Recipients have no way to verify that a message came from a particular goose agent: outbound content carries no signature or other attribution the agent controls.

    Fail
  • V4
    Independently checkable record

    The session store and logs carry no integrity data, so no tool can check whether the record is intact.

    Fail
  • V5
    Comparable state

    All state is in local YAML, text and SQLite files, so the owner can copy it at two points in time and compare the copies with open tools such as diff and sqldiff.

    Pass

Modifiable · Can you change anything, without asking?

100%
  • M1
    Instructions

    The system prompt and eight other templates can be overridden in ~/.config/goose/prompts, and .goosehints and recipes add owner instructions. Templates that cannot be overridden remain editable in the Apache-2.0 source.

    Pass
  • M2
    Memory

    Memory extension entries are categorized text files in ~/.config/goose/memory that can be viewed, edited or deleted directly, and sessions can be removed.

    Pass
  • M3
    Logic

    Owners can write recipes and custom MCP extensions and modify the open-source runtime.

    Pass
  • M4
    Tools and permissions

    Any MCP server can be added as an extension, and each tool can be set to always allow, ask before or never allow.

    Pass
  • M5
    Model choice

    goose supports 15+ providers plus built-in local GGUF inference and Ollama, and its tools belong to the runtime. Tool-use quality varies by model, and non-tool-calling models rely on the experimental shim.

    Pass
  • M6
    No gatekeeping

    goose has no paid tier, license check or approval requirement for modifications.

    Pass

Controllable · Is your word final?

75%
  • C1
    Communication boundaries

    goose contacts external parties only through extensions the owner enables, and each tool can be set to always allow, ask before or never allow. The owner cannot limit which recipients, hosts or domains a permitted tool reaches, so an allowed shell tool can contact any host.

    Partial
  • C2
    Approval gates

    Manual Approval mode and per-tool Ask Before or Never Allow settings are enforced by the runtime before a tool runs. Smart Approval, where an LLM judge decides, is optional.

    Pass
  • C3
    Immediate halt

    goose runs as a local process: Ctrl+C in the CLI or the stop control in the desktop app interrupts it, and the owner can kill the process at any time.

    Pass
  • C4
    Data sovereignty

    Usage data is opt-in (GOOSE_TELEMETRY_ENABLED defaults to false), excludes content, and model traffic goes only to the provider the owner chooses. The desktop app checks for updates by default, and a past bug caused updates to download even when automatic downloads were disabled.

    Partial
  • C5
    Credential custody

    Secrets stay under the owner's control in the OS keyring or a local secrets.yaml, with nothing held by the project. Keyring-stored secrets do not travel with a file copy and must be migrated by hand.

    Partial
  • C6
    Full deletion

    All state sits in local directories and the keyring, which the owner can delete completely, and the foundation holds nothing to retain. Data already sent to model providers follows their policies.

    Pass
Something wrong or out of date?

Vendors and the public can dispute any finding with evidence. Disputes and their resolutions are published.

Dispute a finding