feat: multi-provider cli setup wizard and self-hosted iroh relay#1070
Draft
ital0 wants to merge 3 commits into
Draft
feat: multi-provider cli setup wizard and self-hosted iroh relay#1070ital0 wants to merge 3 commits into
ital0 wants to merge 3 commits into
Conversation
Semgrep Security ScanNo security issues found. |
PR Metrics
Updated Fri, 10 Jul 2026 00:52:47 GMT · run #2256 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1032. Removes the CLI's hard Anthropic dependency and stands up the self-hosted iroh relay path.
What
Multi-provider model resolution (
cli/src/agent/)--providernow accepts 14 builtin vendors resolved against the Pi catalog (anthropic, openai, google, xai, deepseek, zai, mistral, groq, openrouter, moonshotai, minimax, cerebras, together, fireworks) plus the existingopenai-compatescape hatch.--api-keyis threaded per-call and wins over env; each builtin provider keeps Pi's native env resolution (OPENAI_API_KEY,GEMINI_API_KEY, …).First-run setup wizard (
cli/src/config/)thunderboltwith no credentials in a TTY now launches a 3-step wizard (17-choice vendor menu incl. Ollama/LM Studio presets and custom OpenAI-compatible endpoints → hidden API-key input → model pick) instead of erroring.$THUNDERBOLT_HOME/config.json(mode 0600). Precedence: flag > env > config > default. Saved key/baseUrl are provider-scoped — a saved Anthropic key is never forwarded when--provideroverrides to another vendor.thunderbolt configsubcommand re-runs the wizard. Non-TTY keeps a crisp guidance error.Self-hosted iroh relay (
deploy/iroh-relay/,docs/architecture/)docker compose up -drunsn0computer/iroh-relay:v1.0.2 --devon :3340; both sides already accept overrides (THUNDERBOLT_IROH_RELAY_URLruntime CLI /VITE_IROH_RELAY_URLbuild-time app).config.example.toml): LetsEncrypt, QUIC address discovery (UDP 4433), shared-token access control, rate limits.Validation
cli: tsc clean, 271 tests × 5 runs = 1355 pass / 0 fail; rootmake checkgreen (lint, prettier, license headers).http://localhost:3340/, zero n0 relay involvement).Follow-ups (not in this PR)