remembers
v0.1.1
Published
Connect every agent harness on this machine to Minds (and optionally Foundry) in one command.
Readme
remembers — one command to connect every agent harness to Minds
npx remembers # sign in with LifeID, pick harnesses, done
npx remembers disconnect # undo everything connect did (and sign out)
npx remembers statusconnect:
- Signs you in with LifeID through the Minds OAuth server at
mcp.minds.sh(which hands off to auth.life.one). It reads/.well-known/oauth-authorization-server, opens a free 127.0.0.1 port, registers that exact/callbackat/oauth/register(public client), runs authorize with PKCE S256, and exchanges the code at the token endpoint. The refresh token is stored 0600 in~/.config/minds/session.json, and later runs refresh silently. SetMINDS_TOKENfor headless/CI. - Detects installed harnesses and shows a checklist.
- Adds one MCP server,
https://mcp.minds.sh/mcp, to each, which covers all your Minds (the bridge lists them and every tool takes an optionalmind). - Asks: Also route this harness's AI calls through Foundry? If you say yes, it mints an org-scoped Foundry key with your LifeID session (stored
0600in~/.config/foundry/key, shared withfoundry connect) and points the harness atapi.fdy.sh(OpenAI and Anthropic formats).
Every file is backed up (*.minds-bak.<timestamp>) before it is written. Re-running replaces only the CLI's own entries, so it's idempotent. No URL contains a secret, and keys never appear in logs.
| Harness | Detected by | Minds MCP written to | Foundry routing |
|---|---|---|---|
| Claude Code | claude on PATH, ~/.claude* | claude mcp add --transport http -s user (fallback ~/.claude.json) | ~/.claude/settings.json env (Anthropic format); prior values restored on disconnect |
| Codex | codex, ~/.codex | ~/.codex/config.toml [mcp_servers.minds] (managed block) | [model_providers.foundry] + profile = "foundry"; needs source ~/.config/foundry/env |
| Cursor | ~/.cursor, cursor | ~/.cursor/mcp.json | manual (Settings > Models); CLI prints values |
| Grok Bot | ~/.grokbot, grokbot | ~/.grokbot/mcp.json | manual (Model providers); CLI prints values |
| OpenClaw | ~/.openclaw, openclaw | ~/.openclaw/mcp.json | source ~/.config/foundry/env (OpenAI env vars) |
| Hermes | ~/.hermes, hermes | ~/.hermes/config.yaml mcp_servers.minds (nested under an existing key if present) | source ~/.config/foundry/env |
| VS Code / Copilot | Code/User dir, code | <Code/User>/mcp.json servers.minds | manual (Chat > Manage Models) |
| Windsurf | ~/.codeium/windsurf, windsurf | ~/.codeium/windsurf/mcp_config.json (serverUrl) | not supported by Windsurf |
Flags: --yes, --only=claude,codex, --foundry / --no-foundry, --no-login, --dry-run.
Env overrides (for testing): MINDS_HOME, MINDS_MCP_URL, MINDS_OAUTH_ISSUER, MINDS_NO_BROWSER, LIFEID_TOKEN (Foundry key minting), FOUNDRY_BASE_URL, MINDS_NO_NATIVE_CLI.
Tests: npm test runs the full connect → re-connect → disconnect cycle against fake home dirs for all 8 harnesses, with a mock Foundry key endpoint, and checks that no secret reaches stdout.
Package: remembers on npm (installs the remembers command, with minds as an alias). npx remembers runs connect.
