HypAware

Goose

Status: Supported. Setup id: goose. Backfill: Yes.

HypAware reads Goose's local session database, ~/.local/share/goose/sessions/sessions.db, read-only. It polls the database every 60 seconds for new messages, and a scheduled import every 15 minutes brings in existing sessions. It does not route Goose's model traffic or change Goose's settings. The same database serves the Goose CLI and Desktop on Linux and macOS.

What is recorded

Sessions and messages, including your prompts, Goose's responses, tool calls and their output, the tokens Goose records for each response, and each session's working directory. A session's title is generated by the model from your conversation, so it is treated as message content.

Subagent sessions are recorded as their own sessions, linked to the session that started them. Sessions Goose keeps hidden, such as goose run --no-session and the checks goose configure runs, are never read.

Set it up

hyp setup offers Goose when it finds the session database. On a new installation you can pick it without the prompts:

Terminal
hyp setup --source goose
hyp status

To add Goose to an existing installation, run hyp setup in a terminal, choose Reconfigure, and select Goose; your current choices stay selected. hyp setup --source goose refuses to change an existing configuration, and --force replaces it rather than adding to it.

This integration installs no skills into Goose.

Use a different database location

The daemon does not see a GOOSE_PATH_ROOT set in your shell, because it runs under launchd or systemd with its own environment. A hyp backfill goose run from that shell does see it, so the two can read different databases. If you set GOOSE_PATH_ROOT, or keep the database somewhere else, add this entry to the existing plugins list in your HypAware configuration, preserving the other entries:

JSON
{
  "name": "@hypaware/goose",
  "config": {
    "sessions_db": "/absolute/path/to/sessions.db"
  }
}

See configuration for the config location, then apply and check the change:

Terminal
hyp config validate
hyp daemon restart
hyp status

Import existing history

Setup does not import your existing sessions itself. The scheduled import picks them up within 15 minutes, or run it now:

Terminal
hyp backfill goose --dry-run
hyp backfill goose

New messages arrive on the next poll, up to a minute after Goose writes them. A scheduled import also runs every 15 minutes. It picks up changes Goose makes to a session it already wrote, so those can take up to 15 minutes to appear. Set backfill.window_days to limit both imports to recent sessions. With backfill.on_join set to false, neither runs.

Privacy

Directory markings and .hypignore apply to each session's working directory. To stop recording one session, pass its Goose session id, such as 20261103_4. Goose prints the id when a session starts, and goose session list shows it for each session:

Terminal
hyp session ignore 20261103_4

Goose reads saved exclusions on its next poll, so an ignore takes effect within a minute.

The command saves the exclusion through the HypAware gateway, so it works only while HypAware also records another client through its gateway. On an install that records only Goose, it prints one hyp session error line, exits 3, and saves nothing. Ignore the session's working directory instead, which also stops recording every other Goose session there:

Terminal
hyp privacy ignore /path/to/session/working/dir

See marking directories.

Goose writes its own copy of your prompts. Goose saves the full body of every model request, including your prompts, to llm_request.*.jsonl files in its logs directory. HypAware does not read those files, and HypAware's privacy controls do not cover them.

Limits

  • Sessions from Goose versions before 1.10.0, which kept each session in its own .jsonl file, are not imported.
  • Goose Desktop sessions are recorded only when Desktop writes them to the same sessions.db. Paths only Desktop uses are not read.
  • The older macOS location, ~/Library/Application Support/Block/goose/, is not read. Point sessions_db at a database there if you still use one.
  • If Goose changes its database schema, hyp status reports the missing column and HypAware records nothing until a release supports the new schema. It never writes partial rows.

For status messages and fixes, see troubleshooting.

Was this page useful?

↑↓ navigate↵ openesc close