grokkit/README.md

168 lines
3.1 KiB
Markdown
Raw Normal View History

2026-02-28 19:56:23 +00:00
# Grokkit
Grokkit is a fast Go CLI integrating Grok AI with git workflows and general chat/edit.
## 🚀 Quick Start
```bash
export XAI_API_KEY=sk-...
# Install from source
git clone https://github.com/yourusername/grokkit.git
cd grokkit
make install
# Or build locally
make build
2026-02-28 19:56:23 +00:00
grokkit --help
```
## 📁 Config (optional)
`~/.config/grokkit/config.toml`:
```toml
default_model = "grok-4"
temperature = 0.7
timeout = 60 # seconds
log_level = "info" # debug, info, warn, error
[aliases]
beta = "grok-beta-2"
[chat]
history_file = "~/.config/grokkit/chat_history.json"
2026-02-28 19:56:23 +00:00
```
Logs are written to `~/.config/grokkit/grokkit.log` in JSON format for structured analysis.
2026-02-28 19:56:23 +00:00
## Commands
### 💬 `grokkit chat`
Interactive CLI chat with Grok. Features persistent history across sessions.
2026-02-28 19:56:23 +00:00
```
grokkit chat
grokkit chat -m grok-beta # Use specific model
2026-02-28 19:56:23 +00:00
```
### 📝 `grokkit commitmsg`
Generate conventional commit from staged changes.
```
git add .
grokkit commitmsg
```
### ✅ `grokkit commit`
Generate & commit.
```
grokkit commit
```
### 🔍 `grokkit review`
AI code review of staged changes.
```
grokkit review
```
### 📋 `grokkit pr-describe`
PR description from branch vs main.
```
grokkit pr-describe
```
### 📜 `grokkit history`
Summarize recent commits.
```
grokkit history
```
### ✏️ `grokkit edit FILE "instruction"`
AI edit file.
```
grokkit edit main.go "add error handling"
```
## Shell Completions
Generate shell completions for your shell:
```bash
# Bash
grokkit completion bash > /etc/bash_completion.d/grokkit
# Zsh
grokkit completion zsh > "${fpath[1]}/_grokkit"
# Fish
grokkit completion fish > ~/.config/fish/completions/grokkit.fish
# PowerShell
grokkit completion powershell > grokkit.ps1
```
2026-02-28 19:56:23 +00:00
## Flags
- `--model, -m`: Specify model (e.g., grok-4, grok-beta)
- `--debug`: Enable debug logging (outputs to both stderr and log file)
- `--verbose, -v`: Enable verbose logging
- All flags are global and work with any command
## Features
-**Structured logging with slog** - JSON logs with request tracing, timing, and context
- ✅ Context-aware HTTP requests with timeouts
- ✅ Comprehensive error handling and custom error types
- ✅ Persistent chat history across sessions
- ✅ Configurable temperature and parameters
- ✅ Shell completions (bash, zsh, fish, powershell)
- ✅ Test coverage >70%
- ✅ CI/CD with Gitea Actions
- ✅ Interface-based design for testability
### Logging & Observability
Grokkit uses Go's standard `log/slog` for structured logging:
```bash
# Enable debug mode (logs to both stderr and file)
grokkit chat --debug
# View logs
tail -f ~/.config/grokkit/grokkit.log
# Parse JSON logs with jq
cat ~/.config/grokkit/grokkit.log | jq 'select(.level=="ERROR")'
```
**Logged metrics:**
- API request/response timing and sizes
- Git command execution and output
- File operations with size tracking
- Error context with stack traces
## Development
```bash
# Run tests
make test
# Run tests with coverage
make test-cover
# Build
make build
# Install locally
make install
```
2026-02-28 19:56:23 +00:00
## License
[Unlicense](https://unlicense.org/)