Memory for goose that reaches your other machines
If a new goose session does not know what you told the last one, look at the Memory extension first. It comes with goose, it “Teaches goose to remember your preferences as you use it”, and it is off until you turn it on. Turned on, it keeps memories as files, in .goose/memory/ in your working directory or in ~/.config/goose/memory/, and “goose loads all saved memories at the start of a session and includes them in every prompt sent to the LLM.” Your conversations stay on the machine as well: “All conversations and interactions (both CLI and Desktop) are stored locally”.
Yes, once you turn on its built-in Memory extension, which is off by default and keeps what it saves in local files. Connect goose to Pando as well, and the decisions it writes into your outline reach every machine you use and every other agent you allow to read them.
Set it up
- In a terminal, run goose configure and add a remote extension of the streamable_http type. Name it pando, and when it asks for the Streaming HTTP endpoint URI, give it https://pando.ink/mcp.
- It then asks for a timeout and for a description, which is required. Answer both and say no to custom headers. Then run goose session, and approve the sign-in in Pando when goose opens your browser the first time it connects.
There is nothing to paste for the sign-in. goose’s docs say remote extensions that require OAuth “normally obtain a client ID automatically, using Client ID Metadata Documents or Dynamic Client Registration”, and Pando offers both. goose Desktop and config.yaml are routes its docs name as well; in the file the type is streamable_http and the address goes under uri. If the sign-in does not finish, connect with a key instead, as further down.
What you approve in Pando
The browser opens Pando, where you sign in first if you are not signed in already, and then its consent page, which offers “Read and write your outline” or “Read your outline only”. Either way goose starts with your whole outline, and which of the two is selected when the page opens depends on what goose asks for, so look before you allow it. A box underneath, ticked by default, gives it a bullet under Home to remember in, named after whatever goose calls itself when it registers. For memory alone, read only is enough: goose can still write in that bullet, and nowhere else. Untick the box and it remembers nowhere until you assign a bullet under Agents and API keys.
The token it gets has no expiry and works until you revoke it under Agents and API keys. goose’s release notes for v1.49.0 say it keeps using a valid access token that comes without a refresh token, which is the kind Pando issues.
With less reach, or with a key
If goose signed in, it can be held to one bullet without a key: open that bullet, open Agents and API keys in Settings, tap its row under Your agents, and press Let it reach only “…”, the bullet you are in. It then reads and writes that bullet and everything under it, remembers there, and reaches nothing else in your outline, even if you approved it to read only. A bullet you protect refuses every change it tries, and a lock stops changes, not reading.
- For a key instead of the sign-in, open Agents and API keys, give a new agent a handle, untick both “Let it read and write this outline” and “Give it a bullet of its own to remember in”, and choose Create the agent. Copy its key, which starts with pf_ and is shown once.
- Open the bullet it may work in, open Agents and API keys again, tap the agent’s row under Your agents, and press Let it reach only “…”, the bullet you are in. Until then it reaches nothing.
- Add the extension as under Set it up, but answer yes to “Would you like to add custom headers?” and add one named Authorization whose value is Bearer, a space and the key, the header goose’s guide to its GitHub extension adds with a token. Pando then answers goose without a sign-in. If goose already signed in the other way, revoke that connector under Agents and API keys.
What each place is for
- ~/.config/goose/memory/, for preferences goose should know wherever it runs on this machine.
- .goose/memory/ in a working directory, for what goose should know about that one project.
- A branch of your outline, for decisions and their reasons that have to reach a second machine, another agent, or you on your phone.
The two remember differently. goose keeps what you tell it to, since it “will recall everything you’ve saved as long as you instruct it to remember”, and its files go into every prompt, which keeps them in view and makes every prompt longer. An outline is read only when goose calls one of Pando’s tools, such as recall or search, so it can grow without making every prompt longer, and Pando’s instructions to every client that connects say to recall before assuming.
The two fit together. With the Memory extension on, ask goose to remember one line: recall from Pando before assuming, and keep decisions and their reasons there. goose loads its saved memories at the start of a session and puts them in every prompt, so the line is in view before it reaches for anything else. Look where the file landed: under .goose/memory/ it belongs to that working directory, and under ~/.config/goose/memory/ to every session on this machine.
When the Memory extension is enough
If you work on one machine and goose is your only agent, turn the Memory extension on and use it. Every place goose’s docs name for its memories and its conversations is on the machine itself, and that is a limit only once the work leaves it. Roaming Agents reaches one host’s agent from somewhere else; it syncs no memory, and its docs say it is “not included in released goose binaries”. The outline matters from the day a laptop at home or a second agent joins the work: Claude Code, Codex and Cursor connect to the same address, so what goose decided at work is what Codex reads at home.
What it costs
Nothing, for 1,000 bullets, with every feature included and no payment card. goose is free and open source as well, and its docs name the cost that remains: “there is typically a cost associated with LLM token usage.”
Deeper
Connect an agent, about two minutes · The twelve tools · Which note apps an agent can reach · Who runs this