Goatmeal is a powerful terminal-based application that provides access to various AI chat providers and web search capabilities, all within your terminal.
- Multiple AI Providers Support
- OpenAI
- Anthropic
- Gemini
- Deepseek
- Groq
- Web Search Integration
- Tavily search with domain filtering
- Markdown-formatted search results
- Answer summaries for relevant queries
- User-Friendly Terminal UI
- Built with Bubble Tea and Bubbles
- Beautiful styling with Lipgloss
- Markdown rendering with Glamour
- Multiple theme options
- Conversation Management
- SQLite-based conversation storage
- 30-day retention policy
- Easy conversation browsing
- Support for both chat and search conversations
- Configuration
- YAML-based configuration
- Secure API key storage
- Customizable system prompts
- Model selection per provider
- Help System
- Built-in keyboard shortcut reference
- Quick access with ctrl+h
go install github.com/tedfulk/[email protected]
On first run, Goatmeal will guide you through the setup process. You'll need to provide API keys for the services you want to use.
Configuration is stored in ~/.config/goatmeal/config.yaml
:
api_keys:
openai: your-api-key
anthropic: your-api-key
gemini: your-api-key
deepseek: your-api-key
groq: your-api-key
tavily: your-api-key
current_model: llama-3.3-70b-versatile
current_provider: groq
current_system_prompt: You are a helpful AI assistant.
settings:
outputglamour: true
conversationretention: 30
theme:
name: Default
username: teddy
system_prompts:
- content: You are a helpful AI assistant.
title: General
ctrl+t
: Start a new conversationctrl+l
: View conversation listctrl+s
: Open settings menuctrl+h
: View helpctrl+c
: Quit applicationesc
: Go back/close current view
?
: Toggle menu/
: Enter search modeenter
: Send message#o[n]
: Open message number 'n' in editor (e.g., #o1)#m[n]
: Copy message number 'n' to clipboard (e.g., #m1)#b[n]
: Copy code block number 'n' to clipboard (e.g., #b1)
/query
: Search for information/query +domain.com
: Search with specific domain/o
: Toggle enhanced search mode/o query
: One-time enhanced searchesc
: Exit search mode
The enhanced search mode (🔍+) uses AI to optimize your search queries for better results. When enabled:
- Queries are automatically enhanced with relevant context
- Location and time information are considered
- Ambiguous terms are clarified
- Results are more targeted and comprehensive
- Queries are optimized while staying under character limits
Examples:
- Basic:
/what's the weather like?
- Enhanced:
/o what's the weather like?
- Gets transformed into a more specific query including location and time context
- Domain-specific:
/o python tutorials +python.org
- Enhanced query limited to python.org domain
The status bar shows 🔍+ when enhanced mode is active. You can toggle it with /o
or use it for a single search with /o query
.
tab
: Switch focus between list and messagesd
: Delete selected conversatione
: Export conversation as JSON (saves to ~/Downloads)esc
: Return to chat
goatmeal/
├── config
├── database
├── main.go
├── scripts
├── services
│ ├── providers
│ ├── web
├── ui
│ ├── setup
│ ├── theme
│ ├── // the rest of the views and logic
└── utils