With the help of your beloved familiar, become an arcane master of the terminal.
Cauldron is a comprehensive Fish Shell utility suite that enhances your terminal experience with AI-powered assistance, rich UI components, and powerful developer tools. Whether you're managing packages, searching code, or automating workflows, Cauldron provides the magical touch your terminal needs.
- Features
- Quick Start
- Installation
- Core Concepts
- Usage Examples
- Documentation
- System Requirements
- Project Structure
- Contributing
- License
- Interactive AI Assistant: Get help from your terminal companion
- LLM Integration: Query the llama3.2 model directly from your shell
- Smart Code Search: Find and preview code with intelligent suggestions
- π§ Context Awareness: Familiar remembers conversations and understands your projects
- πΎ Conversation Memory: Persistent history across sessions with recall and search
- βοΈ User Preferences: Learns your coding style and project-specific preferences
- ποΈ Project Detection: Automatically detects languages, frameworks, and package managers
- π Personality System: Six built-in personalities (Wise Mentor, Sarcastic Debugger, Enthusiastic Cheerleader, Zen Master, Mad Scientist, Pair Programmer)
- π Relationship Building: Your familiar learns and grows with you, unlocking features as you interact
- π― Adaptive Responses: Adjusts tone and detail based on your error rate, project complexity, and stress levels
- Visual Components: Boxes, badges, spinners, and progress indicators
- Color Palettes: Pre-configured themes (berry, malory, neodutch)
- Text Styling: Bold, italic, underline, and banner effects
- Visual Effects: Rain, orbiting volleys, and VHS effects
- Multi-Source Installation: Install from APT, Homebrew, and Snap
- Language Version Management: ASDF and NVM integration
- Automated Updates: System-wide update orchestration
- Workspace Creation: Quick project scaffolding
- Repository Management: Git workflow automation
- Node.js Utilities: Environment initialization and Yarn management
- Code Search: Recursive grep with fzf preview and VS Code integration
- SQLite Integration: Built-in database for configuration storage
- Environment Conversion: Export environment variables to JSON
- Backup Automation: Automatic file backups before editing
# One-line installation
curl -fsSL https://raw.githubusercontent.com/MagikIO/cauldron/main/install.sh | bash
# Or manual installation
git clone https://github.com/MagikIO/cauldron.git ~/.cauldron
cd ~/.cauldron
./install.sh
# Start using Cauldron
ask "How do I create a new React component?" # Query AI with personality
personality list # See available personalities
personality set sarcastic_debugger # Change your familiar's personality
hamsa "TODO" # Search code with preview
familiar "Hello, what can you help me with?" # Chat with your familiar
cauldron --help # View all commands- Fish Shell (v3.0+)
- Git
- curl
- Node.js v22+ (recommended)
- pnpm v9+ (optional, for development)
# One-line installation with automatic setup
curl -fsSL https://raw.githubusercontent.com/MagikIO/cauldron/main/install.sh | bash
# Restart your shell
exec fish# Clone the repository
git clone https://github.com/MagikIO/cauldron.git ~/.cauldron
cd ~/.cauldron
# Run installation script
./install.shThe installer will:
- Set up the
~/.config/cauldrondirectory structure - Copy all functions to your Fish configuration
- Initialize the SQLite database
- Set required environment variables
- Install essential tools (fzf, bat, cowsay, etc.)
- Configure your shell for immediate use
Keep Cauldron up to date with the built-in update system:
# Check for updates
cauldron_update --check-only
# Apply updates (with automatic backup)
cauldron_updateThe update process:
- β Creates automatic database backup
- β Pulls latest code from GitHub
- β Runs database migrations
- β Updates Fish functions
- β Updates data files and Node.js dependencies
- β Preserves your conversation history and preferences
If something goes wrong, use repair mode:
# Check for issues
cauldron_repair --verify-only
# Auto-fix all issues
cauldron_repair --fix-all
# Interactive repair
cauldron_repairSee INSTALL_UPDATE.md for detailed installation and troubleshooting guide.
- Dependency management
For detailed installation instructions, see docs/INSTALLATION.md.
Your "familiar" is an AI companion that assists you in the terminal. It can:
- Answer questions about your codebase
- Provide coding assistance
- Display messages with various "emotions" (borg, dead, stoned, paranoid, drunk, greedy)
- Use custom cowsay characters (Yoda, Vault-Boy, Wheatley, etc.)
Cauldron organizes its functionality into categories:
- functions/ - Core utilities (installs, node_init, workspace creation)
- familiar/ - AI companion interface
- UI/ - Visual components (badges, boxes, spinners)
- text/ - Text formatting (bold, italic, banners)
- effects/ - Visual effects (rain, VHS, orbiting)
- alias/ - Shell shortcuts and aliases
- packages/ - Package manager integrations
Cauldron uses these environment variables:
CAULDRON_PATH- Base installation directoryCAULDRON_DATABASE- SQLite database locationCAULDRON_PALETTES- Color palette definitionsCAULDRON_SPINNERS- Spinner animation definitionsCAULDRON_INTERNAL_TOOLS- Internal tool scripts
# Query the AI model (now with context awareness!)
ask "Explain the difference between map and forEach in JavaScript"
# Ask follow-up questions (remembers conversation history)
ask "Which one should I use for this project?"
# Search code with live preview
hamsa "authentication"
# Get help from your familiar
familiar "How do I optimize this database query?"# View conversation history
recall # Last 10 conversations from current session
recall -a -l 20 # Last 20 from all sessions
recall -s "typescript" # Search conversations
# Save preferences
remember coding_style "functional programming, immutability"
remember test_framework "vitest"
remember --list # View all saved preferences
# Project context
context # View current project context
context -u # Update project context in database
# Manage memory
forget -p coding_style # Remove a preference
forget -s # Clear session history# List available personalities
personality list
# See current personality and relationship status
personality show
# Change personality
personality set sarcastic_debugger # Global
personality set zen_master --project # Project-specific
# View personality details
personality info wise_mentor
# Create custom personality
personality create my_helper
# Edit personality traits
personality edit my_helper
# Export/import personalities
personality export sarcastic_debugger ~/my_personality.json
personality import ~/shared_personality.json
# Reset relationship level
personality resetSee PERSONALITY_SYSTEM.md for detailed personality documentation.
# Install packages from multiple sources
installs bat fzf cowsay
# Install from specific package manager
installs --apt build-essential
# Dry run to see what would be installed
installs --dry-run neovim
# Select preferred package manager
choose_packman# Initialize a Node.js project
node_init my-project
# Create a new workspace
create_workspace my-app
# Update repository with all dependencies
update_repo
# Manage Yarn packages
roll-yarn# Edit with automatic backup
backup_and_edit config.json
# Create a backup
bak important-file.txt
# Copy Fish functions
cpfunc ./my-functions/ -d# Display styled text
bold "Important message"
italic "Emphasized text"
underline "Underlined text"
# Create banners
banner "Welcome"
beam-banner "Project Name"
# Show spinners
spin "Loading..."
# Display badges
badge "SUCCESS" green# Detect operating system
detectOS
# Get latest GitHub release
getLatestGithubReleaseTag owner/repo
# Visual git branch selection
visual_git_checkout- INSTALLATION.md - Detailed installation guide
- CONFIGURATION.md - Configuration options and customization
- ARCHITECTURE.md - System architecture and design
- API.md - Complete function reference
- FAMILIAR.md - AI companion guide
- MEMORY_SYSTEM.md - π Context awareness & memory features
- MEMORY_SYSTEM_QUICKSTART.md - π 5-minute quick start guide
Located in docs/functions/:
- ask - AI model querying
- backup_and_edit - File editing with backups
- cache-pipe - Caching utilities
- cpfunc - Function copying
- create_service - Service creation
- dev-it - Development tools
- env2json - Environment to JSON conversion
- installs - Package installation
- node_init - Node.js initialization
- update_repo - Repository updates
Every function supports the -h or --help flag:
installs -h
ask --help
familiar -h- Operating System: Linux (Ubuntu/Debian recommended) or macOS
- Shell: Fish Shell v3.0+
- Git: For version control and updates
- curl: For downloading resources
- Node.js: v22.9.0 (for TypeScript components)
- pnpm: v9+ (for dependency management)
- SQLite3: For database features
- fzf: For fuzzy finding and search
- bat: For syntax-highlighted file viewing
Cauldron can install these tools automatically:
Via APT (Linux):
- bat, cbonsai, cowsay, fortune, jp2a, linuxlogo
- pv, hyfetch, build-essential, procps, curl, git
- rig, toilet, sqlite3
Via Homebrew:
- glow, fzf, timg, watchman, lsd, fx, navi
Via Snap:
- lolcat-c
For AI Features:
- Ollama with llama3.2 model
cauldron/
βββ node/ # TypeScript/Node.js components
β βββ index.ts # Main entry point
β βββ Cauldron.ts # Core orchestrator class
β βββ DB.ts # Database manager
β βββ CustomUpdateMech.ts # Update mechanism
β
βββ functions/ # Core Fish shell functions
βββ familiar/ # AI companion system
βββ UI/ # User interface components
βββ text/ # Text formatting utilities
βββ effects/ # Visual effects
βββ alias/ # Shell aliases
βββ cli/ # Command-line interface
βββ setup/ # Installation utilities
βββ update/ # Update system
βββ internal/ # Internal utilities
βββ tools/ # Internal tools
βββ packages/ # Package manager integrations
β βββ asdf/ # ASDF version manager
β βββ nvm/ # Node Version Manager
β
βββ data/ # Static data files
β βββ cauldron.db # SQLite database
β βββ palettes.json # Color palettes
β βββ spinners.json # Spinner definitions
β βββ *.cow # Cowsay characters
β
βββ docs/ # Documentation
β βββ functions/ # Function-specific docs
β βββ setup/ # Setup documentation
β βββ text/ # Text utilities docs
β
βββ config/ # Configuration utilities
βββ install.fish # Main installation script
βββ dependencies.json # External dependencies
βββ package.json # NPM configuration
βββ tsconfig.json # TypeScript configuration
βββ CHANGELOG.md # Version history
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
# Clone the repository
git clone https://github.com/MagikIO/cauldron.git
cd cauldron
# Install dependencies
pnpm install
# Run TypeScript components
pnpm run
# Lint code
pnpm lint
# Run tests
./tests/run_tests.fishCauldron uses Fishtape for testing Fish shell functions. Tests are automatically run via GitHub Actions on every push and pull request.
# Install test dependencies
./tests/setup.fish
# Run all tests
./tests/run_tests.fish
# Run unit tests only
./tests/run_tests.fish --unit
# Run integration tests only
./tests/run_tests.fish --integrationSee tests/README.md for comprehensive testing documentation.
- Fish shell functions follow consistent patterns
- TypeScript uses strict mode with ES2022 target
- ESLint with @magik_io/lint_golem configuration
- Semantic versioning for releases
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
See CHANGELOG.md for detailed version history.
- v0.3.1 - Improved directory creation and copying logic
- v0.3.0 - Database initialization improvements
- v0.2.1 - Update process bug fixes
- v0.2.0 - Added database support, new cow files, improved CLI
This project is licensed under the MIT License - see the LICENSE file for details.
Antonio B. Email: [email protected] Repository: MagikIO/cauldron
- Fish Shell community for the excellent shell
- Ollama team for local LLM support
- All the open-source tools that make this possible
Bringing Magik to Fish Shell πͺπ
Made with β€οΈ by MagikIO