Skip to content

/gsd config

/gsd config is an interactive wizard for configuring the tool API keys GSD uses for web search and context retrieval. It covers search engines (Tavily, Brave), context tools (Context7, Jina), and voice (Groq). It shows which tools are already configured and which aren’t, then lets you paste keys in one at a time.

Keys are saved to ~/.gsd/agent/auth.json and immediately activated — no restart needed. At startup, GSD automatically loads any saved keys from auth.json into the environment, but only if the variable isn’t already set by other means (shell exports, .env files, etc. take precedence).

After saving any changes, GSD waits for the current operation to idle, then reloads extensions automatically so new credentials are active in the current session.

/gsd config covers tool API keys only. For LLM providers (Anthropic, OpenAI, etc.), remote integrations (Discord, Slack, Telegram), and full per-key management (add, remove, test, rotate), use /gsd keys instead. For workflow preferences — model selection, timeouts, git configuration — use /gsd prefs.

/gsd config

No arguments — the wizard is fully interactive.

  1. Load auth.json — Reads ~/.gsd/agent/auth.json (creating it and its parent directory if missing) to determine which tools are already configured.
  2. Show status — Displays a summary of all configurable tools with ✓ (configured) or ✗ (not set) for each, including the dashboard URL for any unconfigured tool.
  3. Select loop — Presents the tool list as a select menu. Choose a tool to configure it, or press Escape / select “(done)” to exit.
  4. Key input — For the selected tool, prompts to paste the API key. Shows the key’s dashboard URL as a hint.
  5. Save and activate — The key is written to auth.json as { type: "api_key", key } and immediately set as an environment variable in the current process. The option label updates to show “(configured ✓)”.
  6. Reload — Once the loop exits, if any keys changed, GSD waits for the current operation to idle, then reloads extensions so the new credentials are active immediately.
ToolEnv VarGet Key At
Tavily SearchTAVILY_API_KEYtavily.com/app/api-keys
Brave SearchBRAVE_API_KEYbrave.com/search/api
Context7 DocsCONTEXT7_API_KEYcontext7.com/dashboard
Jina Page ExtractJINA_API_KEYjina.ai/api
Groq VoiceGROQ_API_KEYconsole.groq.com

For LLM providers and remote integrations (Discord, Slack, Telegram), use /gsd keys.

Keys are stored in ~/.gsd/agent/auth.json — a global file in your home directory, never inside a project, never committed to git. At session startup, GSD reads this file and loads each stored key into the process environment so tools have access to their credentials automatically.

If a key is already present in the environment via other means (e.g. a .env file or shell export), GSD won’t overwrite it — the environment variable takes precedence.

FilePurpose
~/.gsd/agent/auth.jsonCreated on first run if it doesn’t exist
~/.gsd/agent/Directory created if missing
FilePurpose
~/.gsd/agent/auth.jsonCurrent stored API keys
FilePurpose
~/.gsd/agent/auth.jsonUpdated API keys

Running the setup wizard:

> /gsd config
GSD Tool Configuration
✓ Tavily Search
✗ Brave Search — get key at brave.com/search/api
✓ Context7 Docs
✗ Jina Page Extract — get key at jina.ai/api
✗ Groq Voice — get key at console.groq.com
Configure which tool? Press Escape when done.
❯ Tavily Search (configured ✓)
Brave Search (not set)
Context7 Docs (configured ✓)
Jina Page Extract (not set)
Groq Voice (not set)
(done)

After pasting a key:

API key for Brave Search (brave.com/search/api):
> BSAxxxxxxxxxxxxxxxxxxxx
● Brave Search key saved and activated.

After completing the loop with changes:

● Configuration saved. Extensions reloaded with new keys.
  • /gsd keys — Full key manager: LLM providers, remote integrations, add, remove, test, rotate, and health-check
  • /gsd prefs — Workflow preferences: models, timeouts, git, skills, budget
  • /gsd doctor — Health checks that can surface misconfigured or missing credentials