Major rewrite of the Grok CLI agent:
- Runtime: Bun-first (removed Node.js/tsx fallbacks)
- UI: Replaced Ink with OpenTUI (@opentui/react) terminal framework
- Tools: Simplified to bash-only (removed text-editor, search, morph, todo, confirmation tools)
- Search: Integrated X Search API and Web Search via xAI Responses API
- Models: Updated to all latest Grok models (grok-4, grok-4.20-beta, grok-4-1-fast, grok-4-fast, grok-3-mini)
- Agent: Streamlined agent loop with async generator streaming
- Client: Dual API support (Chat Completions for tool calling, Responses API for search)
- Removed MCP integration, confirmation service, token counter, Morph editor
- Updated tsconfig for OpenTUI React JSX
- Clean 10-file architecture in src/
Co-authored-by: Ismail Pelaseyed <homanp@users.noreply.github.com>
* feat: add support for global custom instructions
* Remove comments
* Fix import syntax for fs-extra module (#112)
* Fix import syntax for fs-extra module
* Fix import syntax for fs-extra module
* Fix import syntax for fs-extra module
* Fix missing newline at end of morph-editor.ts
* Add where to set the API key in the json file (#107)
* Fix diff generation showing entire file as changed (fixes#83) (#98)
The diff preview was showing the entire file as changed when only a few
lines were actually modified. This was caused by a broken change detection
algorithm that couldn't properly handle insertions and deletions.
Replaced the naive line-matching algorithm with a proper LCS (Longest
Common Subsequence) based diff algorithm using dynamic programming. This
produces minimal, accurate diffs that match what git diff shows.
Changes:
- Added computeLCS(): Computes longest common subsequence between old/new lines
- Added extractChanges(): Extracts actual change regions from LCS table
- Updated generateDiff(): Uses LCS-based change detection instead of broken algorithm
Impact:
- Diff previews now show only actual changes (e.g., 4 lines instead of 260)
- Drastically reduces context pollution in conversation history
- Matches git diff output accuracy
🤖 Contributed by ZDS-AI (https://zds.group)
* add model migration manager and new grok models (#124)
* minor tweaks
---------
Co-authored-by: jszczypk <janusz@fide.pl>
Co-authored-by: Ben Faerber <benfaerber@protonmail.com>
Co-authored-by: Joseph Cheek <jcheek@users.noreply.github.com>
Co-authored-by: Ismail Pelaseyed <homanp@gmail.com>
* Convert to ES and install with bun
* Delete package-lock.json
* Update README with bun info
* Update .gitignore
* Update .npmignore
* Bump version
* Unignore package lock
* feat: improve model configuration and settings management
- Refactor model configuration system with unified settings approach
- Add support for user-level default models and project-level current models
- Implement automatic saving of API key and base URL from command line arguments
- Remove model descriptions for cleaner UI and easier extensibility
- Fix commander.js subcommand argument parsing with fallback mechanism
- Improve configuration file structure and priority handling
- Add comprehensive model configuration utilities in src/utils/model-config.ts
Configuration priority: project current model > user default model > system default
Both main command and git subcommand now save credentials automatically
* refactor: unify settings management
- Add SettingsManager singleton for user/project settings
- Eliminate duplicate settings code across files
- Clear separation: user settings vs project settings
* docs: improve README clarity and organization
- Simplify setup section with quick start approach
- Consolidate configuration info into unified section
- Add clear explanation of user vs project settings
- Document OpenAI-compatible API support
- Remove duplicate model configuration sections
* bump sdk
---------
Co-authored-by: Ismail Pelaseyed <homanp@gmail.com>
* feat: add /commit-and-push for AI-generated commits and pushes
* fix: handle missing upstream branch in git push
* feat: add git commit-and-push subcommand with AI assistance
* feat: automate staging changes with git add in commit workflow
* chore: bump version to 0.0.12
* revert package json
* chore(release): bump version to 0.0.12