feat: add Atomic Chat as declarative OpenAI-compatible provider - #9210
Conversation
Add atomic_chat.json (Atomic Chat local API at localhost:1337), document setup in providers.md, and a JSON deserialization unit test. https: //github.com/AtomicBot-ai/Atomic-Chat Co-authored-by: Cursor <cursoragent@cursor.com>
3935498 to
ef89648
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ef89648a43
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| @@ -0,0 +1,29 @@ | |||
| { | |||
| "name": "atomic_chat", | |||
There was a problem hiding this comment.
Add Atomic Chat to the setup catalog
Adding the declarative JSON registers atomic_chat for the backend/CLI, but the desktop provider picker is populated from SETUP_METADATA in crates/goose/src/providers/catalog.rs, and there is no provider_id: "atomic_chat" entry there. After the catalog loads, ui/goose2/src/features/providers/hooks/useProviderInventory.ts filters model providers to catalog IDs, so this new provider will not appear in the desktop Configure Providers flow that the docs advertise and its inventory entry can be filtered out; add a CuratedSetupMetadata entry for atomic_chat with the ATOMIC_CHAT_HOST field.
Useful? React with 👍 / 👎.
Match provider table copy to LM Studio (local + #local-llms link). Move setup from a standalone section into the Local LLMs tabs. Co-authored-by: Cursor <cursoragent@cursor.com>
Register atomic_chat in SETUP_METADATA with ATOMIC_CHAT_HOST field overrides so the desktop setup catalog and provider inventory include it. Extend setup catalog tests. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Short description with typographic apostrophe; LM-style host field text; drop setup_steps and model_doc_link. Mirror LM Studio Local LLMs tab and extend JSON round-trip test. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Verified this works by downloading Atomic Chat, running it with gemma4 and connecting from goose @yanalialiuk I did notice after selecting the provider, it didn't set a default model. There may be config you can modify to make it smooth, but I will get the provider in for now |
* main: (102 commits) Dynamically refresh skill instructions each turn (#9217) Build non-vulkan linux variants using ubuntu 22.04 (#9211) fix(ui): show tool name in approval prompt (#9216) feat: add Atomic Chat as declarative OpenAI-compatible provider (#9210) chore: bump package.json versions from 0.19.1 to 0.20.0 (#9218) feat: support GOOSE_OAUTH_CALLBACK_PORT for stable OAuth redirect_uri (#9209) [RFC] feat(oauth): proactive token refresh to avoid re-auth on every session (#8386) fix: resolve Azure CLI on Windows by using az.cmd (#9215) fix: handle non-interactive terminal in goose configure on Windows (#9214) Better parsing of pasted html as markdown so agents understand (#9190) fix: persist accumulated cost in session DB to survive reload (#9191) fix(publish-npm): build binary from current SHA + add compat check (#9212) feat(desktop): add goose://new-session deep link to open fresh chat (#9196) Add PR previews using cloudflare pages (#9208) fix: prevent tool-use marker leakage in toolshim output (#8310) Prompt injection mitigation: update pattern-based detection (#9198) remove goose2 related skills (#9189) Switch GH pages deploy to actions/artifact workflow (#9025) fix(summon): re-apply canonical limits when delegate overrides model (#9183) Split code signing from build (#8587) ...
…-goose#9210) Co-authored-by: Yana Lyalyuk <yanalyalyuk@MacBook-Pro-Yana.local> Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Adds Atomic Chat as a declarative OpenAI-compatible provider: point Goose at the app’s local API (Atomic-Chat, default http://localhost:1337/v1) so chat uses the same MLX / llama.cpp models as the desktop client.
Included changes
crates/goose/src/providers/declarative/atomic_chat.json— provider config (atomic_chat), configurableATOMIC_CHAT_HOST, dynamic models from/v1/models.documentation/docs/getting-started/providers.md— table entry and setup (Desktop + CLI).crates/goose/src/config/declarative_providers.rs—test_atomic_chat_json_deserializes.Configuration
ATOMIC_CHAT_HOSThttp://localhost:1337).base_url{host}/v1/chat/completions— same shape as other OpenAI-compatible local providers.No API key is wired in this declarative profile; if the local API requires auth, use a custom OpenAI-compatible provider and store credentials there.
Testing
cargo test -p goose test_atomic_chat_json_deserializesgoose configure→ Atomic Chat → pick a model from/v1/models.