Skip to content

Add Crush coding agent integration#952

Open
nickclyde wants to merge 1 commit intojundot:mainfrom
nickclyde:feature/add-crush-integration
Open

Add Crush coding agent integration#952
nickclyde wants to merge 1 commit intojundot:mainfrom
nickclyde:feature/add-crush-integration

Conversation

@nickclyde
Copy link
Copy Markdown

@nickclyde nickclyde commented Apr 24, 2026

Summary

  • Adds Charmbracelet Crush as a fifth option in the admin dashboard's "Other Integrations" panel, alongside Codex, OpenCode, OpenClaw, and Pi.
  • New CrushIntegration writes ~/.config/crush/crush.json with an openai-compat provider pointed at the local oMLX server and binds the selected model to both the large and small Crush model slots.
  • Wires crush_model through IntegrationSettings, the /admin/api/global-settings request/response, the dashboard Alpine state (crushCommand getter + save payload), and the omlx launch CLI help text. launch_command already dispatches via the INTEGRATIONS registry, so no CLI logic changes were needed.
  • Adds status.integrations.crush_desc to all five locales (en/ja/ko/zh/zh-TW) with translations; ran scripts/normalize_i18n.py to keep key ordering aligned.
  • TestCrushIntegration covers get_command, configure (new file / custom host / preserves existing / backup / invalid JSON / with+without limits / without model), and type. Bumps TestIntegrationRegistry to expect 5 entries and extends TestIntegrationSettings to cover crush_model.

Test plan

  • pytest tests/test_integrations.py -v passes locally.
  • Admin dashboard smoke-tested in browser: new Crush card renders, model select populates, command pane updates live, selection persists across reload.
  • omlx launch crush --model <loaded-model> writes a valid ~/.config/crush/crush.json, preserves any pre-existing providers/LSP config (backup file produced), and the Crush TUI successfully hits the oMLX server.
Screenshot 2026-04-24 at 1 42 52 PM Screenshot 2026-04-24 at 1 43 22 PM

Adds Charmbracelet Crush as a fifth option under the admin dashboard's
"Other Integrations" section, matching the pattern used for Codex,
OpenCode, OpenClaw, and Pi. Writes ~/.config/crush/crush.json with an
openai-compat provider pointed at the local oMLX server and selects the
chosen model for both the "large" and "small" Crush model slots.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant