@webdevtoday/grok-cli
Version:
A sophisticated CLI tool for interacting with xAI Grok 4, featuring conversation history, file reference, custom commands, memory system, and genetic development workflows
451 lines (334 loc) • 9.89 kB
Markdown
# Grok CLI
[](https://badge.fury.io/js/@webdevtoday%2Fgrok-cli)
[](https://opensource.org/licenses/MIT)
A sophisticated CLI tool for interacting with xAI Grok 4, featuring conversation history, file reference, custom commands, memory system, and genetic development workflows.
## ✨ Features
- 🤖 **AI Chat Interface** - Interactive terminal chat with Grok 4
- 📚 **Conversation History** - Persistent chat history with search and continuation
- 🧠 **Memory System** - Persistent project context with automatic AI enhancement
- 📁 **File Reference System** - Smart file discovery and reference with `@` commands
- 🔧 **Custom Commands** - User-defined workflows for genetic development
- 🪝 **Hook System** - Event-driven automation compatible with Claude Code patterns
- 🛠️ **Tool Integration** - Support for git, npm, python, docker, tmux, and more
- 🔌 **MCP Integration** - Full Model Context Protocol support for external tools
- 🔐 **Enhanced Permission System** - Advanced security with interactive prompts and audit logging
- 🎯 **Multi-Agent Support** - Tmux-based genetic development environments
## 🚀 Quick Start
### Installation
```bash
# Install globally from npm
npm install -g @webdevtoday/grok-cli
# Or with yarn
yarn global add @webdevtoday/grok-cli
# Or with pnpm
pnpm add -g @webdevtoday/grok-cli
```
### First Time Setup
```bash
# Initialize Grok CLI (prompts for API key and storage location)
grok
# Or provide API key directly
grok --api-key your-xai-api-key
```
**API Key Storage Options:**
During setup, you'll be asked where to store your API key:
- **Global** (`~/.grok/api-key`) - Available for all projects (recommended)
- **Local** (`.grok-api`) - Only for the current project
The CLI automatically checks for API keys in this priority order:
1. Command line `--api-key` flag
2. Environment variable `XAI_API_KEY`
3. Local project file `.grok-api`
4. Global user file `~/.grok/api-key`
### Basic Usage
```bash
# Start interactive chat
grok
# Continue from last conversation
grok --continue
# Resume specific conversation
grok --resume session-id
# Use development mode with OpenAI
grok --dev
# Enable verbose logging
grok --verbose
```
## 📖 Core Features
### 🤖 AI Chat Interface
Interactive terminal-based conversation with xAI Grok 4:
```bash
grok
You: Hello! Help me write a Python script
Grok: I'd be happy to help you write a Python script! What would you like the script to do?
```
### 📚 Conversation History
Automatic conversation persistence with powerful management:
```bash
# List recent conversations
/history list
# Search conversations
/history search "debugging"
# Continue from last session
grok --continue
# Resume specific conversation
grok --resume abc123
```
### 🧠 Memory System
Project-aware context management with GROK.md files:
```bash
# Create project memory
/memory create
# Add important context
/memory add "API uses JWT authentication"
# Search memory
/memory search "database"
# View memory status
/memory status
```
Memory files are automatically discovered and injected into conversations:
- `./GROK.md` - Project-specific context
- `~/.grok-cli/GROK.md` - User-level preferences
- Import system with `@import` directives
### 📁 File Reference System
Smart file discovery and reference:
```bash
# Search for files
@package.json
@src/cli.ts
# Special commands
@recent # Recently modified files
@git # Git tracked files
@ext:ts # Files by extension
```
### 🔧 Custom Commands
Define reusable workflows:
```bash
# List custom commands
/custom list
# Run a command
/custom run setup-env
# Initialize genetic development commands
/init-commands
```
### 🔐 Enhanced Permission System
Advanced security with interactive prompts:
```bash
# Permission modes
grok --permission-mode ask # Interactive prompts (default)
grok --permission-mode plan # Show planned actions
grok --permission-mode auto # Auto-approve all
grok --permission-mode full # No restrictions
# Permission management
/permissions status # Show system status
/permissions audit # View security audit log
/permissions rules # Show persistent rules
/permissions clear # Clear session decisions
```
**Security Features:**
- Risk assessment with color-coded output
- Parameter sensitivity detection
- Persistent "Always/Never" rules
- Complete audit logging
- Session-based caching
### 🔌 MCP Integration
Full Model Context Protocol support:
```bash
# Add MCP servers
/mcp add github "npx @modelcontextprotocol/server-github" "--token=$GITHUB_TOKEN"
/mcp add filesystem "npx @modelcontextprotocol/server-filesystem" "/path/to/dir"
# Manage servers
/mcp list --verbose
/mcp status github
/mcp tools
# Use MCP tools seamlessly
/mcp test github list_repositories '{"owner": "microsoft"}'
```
### 🪝 Hook System
Event-driven automation:
```bash
# Test hooks
/hooks
# Configuration in .grok/settings.json
{
"hooks": {
"PreToolUse": [{
"matcher": ".*",
"hooks": [{
"type": "command",
"command": "echo 'About to execute tool'"
}]
}]
}
}
```
## 🛠️ Tool Integration
Built-in support for development tools:
- **Git** - Repository management
- **npm/yarn/pnpm** - Package management
- **Python/uv** - Python environments
- **Docker** - Container management
- **tmux** - Multi-agent sessions
- **MySQL/PostgreSQL** - Database operations
## ⚙️ Configuration
### API Key Management
Grok CLI supports multiple ways to configure your xAI API key:
1. **Global API Key File** (recommended):
```bash
~/.grok/api-key
```
- Set during first-time setup by choosing "Global"
- Available for all Grok CLI projects
- Automatically loaded by the CLI
2. **Local API Key File**:
```bash
.grok-api
```
- Set during first-time setup by choosing "Local"
- Only available for the current project
- Automatically added to `.gitignore`
- Takes precedence over global API key
3. **Environment Variable**:
```bash
export XAI_API_KEY="your-xai-api-key"
```
- Takes precedence over file-based API keys
4. **Command Line Flag**:
```bash
grok --api-key your-xai-api-key
```
- Highest precedence, overrides all other methods
### Global Configuration
Location: `~/.grok/config.json`
```json
{
"model": "grok-4",
"apiKeys": {
"xai": "your-api-key",
"openai": "dev-api-key"
},
"permissions": {
"mode": "ask",
"allowedTools": [],
"disallowedTools": []
},
"memory": {
"autoLoad": true,
"maxDepth": 5,
"excludePatterns": ["node_modules/**", ".git/**"]
}
}
```
### Project Configuration
Location: `.grok/settings.json`
```json
{
"hooks": {
"PreToolUse": [],
"PostToolUse": [],
"UserPromptSubmit": []
},
"permissions": {
"mode": "ask",
"allowedTools": [],
"disallowedTools": []
},
"mcp": {
"servers": {}
}
}
```
## 📋 Command Reference
### Slash Commands
| Command | Description |
|---------|-------------|
| `/help` | Show help message |
| `/status` | System status |
| `/config` | Show configuration |
| `/tools` | List available tools |
| `/custom` | Manage custom commands |
| `/history` | Conversation history |
| `/memory` | Memory management |
| `/mcp` | MCP server management |
| `/permissions` | Permission system management |
### File Reference Commands
| Command | Description |
|---------|-------------|
| `@filename` | Search for files |
| `@path/to/file` | Reference specific file |
| `@recent` | Recently modified files |
| `@git` | Git tracked files |
| `@ext:js` | Files by extension |
## 🧬 Genetic Development
Grok CLI is designed for multi-agent genetic development workflows:
### Multi-Agent Sessions
```bash
# Create tmux session with multiple agents
/custom run spawn-agents
# Monitor agent activity
tmux ls
# Join specific agent session
tmux attach -t agent-1
```
### Example Genetic Workflow
1. **Planning Agent** - Analyzes requirements
2. **Implementation Agent** - Writes code
3. **Testing Agent** - Runs tests and validation
4. **Review Agent** - Code review and optimization
## 🔧 Development
### Building from Source
```bash
# Clone the repository
git clone https://github.com/webdevtodayjason/grok-cli.git
cd grok-cli
# Install dependencies
npm install
# Build the project
npm run build
# Link for global usage
npm link
```
### Scripts
```bash
npm run build # Compile TypeScript
npm run dev # Development mode
npm run test # Run tests
npm run lint # Lint code
npm run format # Format code
```
## 🐛 Troubleshooting
### Common Issues
**API Key Not Found**
```bash
grok --api-key your-xai-api-key
```
**Permission Denied**
```bash
# Check permission mode
/permissions status
# Update permissions
grok --permission-mode auto
```
**Memory Not Loading**
```bash
# Check memory status
/memory status
# Reload memory
/memory reload
```
### Debug Mode
```bash
grok --debug --verbose
```
## 🤝 Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- [xAI](https://xai.com/) for the Grok 4 model
- [Model Context Protocol](https://modelcontextprotocol.io/) for tool integration standards
- [Claude Code](https://claude.ai/code) for hook system inspiration
---
**Made with ❤️ for the AI developer community**