Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 22, 2026Overview
Ticca is a sleek, native desktop application for AI-assisted coding built with Rust and the Iced GUI framework. Unlike browser-based alternatives, Ticca runs locally with direct filesystem access, enabling AI agents to read, write, and execute code in your actual development environment.
Why Ticca?
- 🔒 Privacy First — Your code stays on your machine. No uploads to third-party servers.
- ⚡ Native Performance — Built in Rust for speed and low resource usage.
- 🔧 Real Filesystem Access — AI agents can read, write, edit, and execute files directly.
- 🤖 Multi-Agent Architecture — Specialized agents for planning, coding, exploration, and skills.
- 🎨 Beautiful UI — 11 built-in themes including Catppuccin, Dracula, Nord, and more.
- 🔑 Zero API Keys Required — OAuth authentication for Claude, ChatGPT, and Gemini.
Features
🤖 Multi-Agent System
Ticca employs specialized AI agents, each optimized for specific tasks:
| Agent | Purpose | Access Level |
|---|---|---|
| Coding | Code generation, modification, and execution | Full Access |
| Planning | Strategic task breakdown and roadmap creation | Read-Only |
| Explore | Fast codebase navigation and search | Read-Only |
| Skills | Python-based skill execution for specialized tasks | Full Access |
Agents can invoke each other, enabling complex workflows like: Planning → Exploration → Implementation → Validation.
🛠️ Native Tool Integration
All tools are implemented in Rust for maximum performance:
File Operations
list_files— Directory listing with intelligent filtering (ignores build artifacts, node_modules, etc.)read_file— Read files with optional line-range selectionedit_file— Surgical text replacements with diff generationwrite_file— Create new filesdelete_file— Remove files with safety confirmations
Search & Analysis
grep— Ripgrep-powered regex search across your entire codebase
System Execution
execute_shell— Run commands in integrated terminal instanceslist_processes— View active terminal processesread_process_output— Stream process outputkill_process— Terminate running processes
Agent Coordination
invoke_agent— Cross-agent communication with isolated message historiestodo_read/todo_write— Agent-scoped task management
🎨 Theme System
11 beautiful themes with instant switching:
| Dark Themes | Light Themes |
|---|---|
| Dark (default) | Light |
| Dracula | Catppuccin Latte |
| Nord | Gruvbox Light |
| Catppuccin Mocha | |
| Tokyo Night | |
| One Dark | |
| Gruvbox Dark | |
| Zinc |
🔌 MCP Support
Connect external tools via the Model Context Protocol. Configure MCP servers in settings to extend Ticca's capabilities with custom tools.
📦 External Tool Management
On-demand downloads for specialized tasks:
- UV — Fast Python package manager
- Pandoc — Document conversion
- Node.js — JavaScript runtime
- LibreOffice — Document processing (AppImage)
Installation
Pre-built Binaries
Download the latest release for your platform from GitHub Releases.
| Platform | Download |
|---|---|
| Linux (x64) | ticca-linux-x86_64.tar.gz |
| macOS (Apple Silicon) | ticca-macos-aarch64.dmg |
| macOS (Intel) | ticca-macos-x86_64.dmg |
| Windows | ticca-windows-x86_64.zip |
Build from Source
Prerequisites:
- Rust 1.75+ with Cargo
- System dependencies for Iced (see Iced setup guide)
# Clone the repository
git clone https://github.com/jan/ticca-desktop.git
cd ticca-desktop
# Build in release mode
cargo build --release
# Run the application
./target/release/ticca-app
Linux Dependencies (Debian/Ubuntu):
sudo apt install libxkbcommon-dev libwayland-dev libvulkan-dev
Linux Dependencies (Fedora):
sudo dnf install libxkbcommon-devel wayland-devel vulkan-loader-devel
Quick Start
1. Launch Ticca
cargo run --release -p ticca-app
Or run the pre-built binary.
2. Connect an AI Provider
Click the settings icon (⚙️) and authenticate with one of:
- Claude — Anthropic's Claude (recommended)
- ChatGPT — OpenAI's GPT models
- Gemini — Google's Gemini models
OAuth flows handle authentication automatically — no API keys required!
3. Open a Project
Use Ctrl+O to open a project directory, or Ticca will use the current working directory.
4. Start Coding
Example prompts to try:
Explore this codebase and explain the architecture
Add input validation to the user registration form
Write tests for the authentication module
Refactor the database queries to use prepared statements
AI Providers
OAuth Authentication (Recommended)
Ticca supports OAuth PKCE flows for major AI providers:
| Provider | Models | Notes |
|---|---|---|
| Claude | claude-sonnet-4, claude-opus-4, claude-3.5-sonnet | Full feature support |
| ChatGPT | gpt-4o, gpt-4-turbo, gpt-3.5-turbo | Uses Codex backend |
| Gemini | gemini-2.0-flash, gemini-1.5-pro | Cloud Code Assist API |
API Key Authentication
For OpenAI-compatible providers, you can also use API keys:
- OpenAI
- Groq
- Mistral
- Together AI
- Any OpenAI-compatible endpoint
Configure API keys in Settings → Providers.
Agents
Coding Agent
The primary agent for code implementation. Has full filesystem access and can:
- Read and analyze existing code
- Write new files and modify existing ones
- Execute shell commands
- Run tests and build scripts
- Invoke other agents for specialized tasks
Workflow: Reason → Execute → Validate (iterative cycle)
Planning Agent
Strategic planning with read-only access. Perfect for:
- Breaking down complex features into tasks
- Analyzing project architecture
- Creating implementation roadmaps
- Coordinating multi-agent workflows
Workflow: Project Analysis → Requirement Deconstruction → Technical Specification → Agent Coordination
Explore Agent
Fast, read-only exploration optimized for:
- Finding files by patterns
- Searching code with regex
- Understanding project structure
- Locating implementations and usages
Use multiple Explore agents in parallel for faster discovery.
Skills Agent
Executes Python-based skills for specialized tasks:
- Document conversion
- Data processing
- Custom automation scripts
Skills are discovered automatically from the skills/ directory.
Tools
File Operations
list_files List directory contents with smart filtering
read_file Read file with optional line range
edit_file Replace text with surgical precision
write_file Create new files
delete_file Remove files with confirmation
Search
grep Ripgrep-powered regex search
System Execution
execute_shell Run shell commands in UI terminal
list_processes List active terminal processes
read_process_output Read new output from a process
kill_process Terminate a running process
Agent Coordination
list_agents Discover available agents
invoke_agent Call another agent with isolated history
todo_read Read agent's task list
todo_write Update agent's task list
Themes
Switch themes instantly with Ctrl+T or through Settings.
Dark Themes
- Dark — Clean modern dark theme (default)
- Dracula — Popular purple-accented theme
- Nord — Arctic, bluish color palette
- Catppuccin Mocha — Warm, cozy dark theme
- Tokyo Night — Inspired by Tokyo's night lights
- One Dark — Atom's iconic dark theme
- Gruvbox Dark — Retro groove colors
- Zinc — Minimal zinc-based palette
Light Themes
- Light — Clean modern light theme
- Catppuccin Latte — Warm, cozy light theme
- Gruvbox Light — Retro groove colors, light variant
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+N | New conversation |
Ctrl+O | Open project directory |
Ctrl+T | Cycle themes |
Ctrl+, | Open settings |
Ctrl+Enter | Send message |
Escape | Cancel current operation |
Ctrl+L | Clear conversation |
Project Architecture
ticca-desktop/
├── crates/
│ ├── ticca-app/ # Desktop GUI application
│ │ ├── src/
│ │ │ ├── app/ # Main application state
│ │ │ ├── views/ # UI components
│ │ │ ├── theme/ # 11 built-in themes
│ │ │ └── widgets/ # Custom Iced widgets
│ │ └── assets/ # Icons and fonts
│ │
│ ├── ticca-core/ # Business logic library
│ │ └── src/
│ │ ├── agents/ # AI agent implementations
│ │ ├── tools/ # Native Rust tools
│ │ ├── llm/ # LLM provider integrations
│ │ ├── config/ # SQLite configuration
│ │ └── session/ # Chat history persistence
│ │
│ └── ticca-oauth/ # OAuth authentication
│ └── src/
│ ├── claude.rs # Anthropic OAuth
│ ├── chatgpt.rs # OpenAI OAuth
│ └── gemini.rs # Google OAuth
│
├── vendor/ # Vendored dependencies
├── scripts/ # Build and utility scripts
└── docs/ # Additional documentation
Development
Prerequisites
- Rust 1.75+ (install via rustup)
- Platform-specific dependencies (see Installation)
Building
# Debug build
cargo build
# Release build (optimized)
cargo build --release
# Run with logging
RUST_LOG=info cargo run -p ticca-app
Testing
# Run all tests
cargo test
# Run tests for a specific crate
cargo test -p ticca-core
# Run with output
cargo test -- --nocapture
Code Style
- Follow Rust naming conventions (snake_case for functions/variables, PascalCase for types)
- Use
rustfmtfor formatting - Run
cargo clippyfor linting - Keep files under 600 lines; refactor if larger
Adding a New Theme
- Create a new file in
crates/ticca-app/src/theme/(e.g.,my_theme.rs) - Define color constants and implement
pub fn theme() -> Theme - Add the variant to
AppThemeenum inmod.rs - Add to
ALL_THEMESarray and implementDisplay/FromStr
Adding a New Tool
- Create the tool in
crates/ticca-core/src/tools/ - Implement the
rig::tool::Tooltrait - Register in
ToolRegistry::default()inmod.rs - Add to appropriate agent tool sets
Configuration
Configuration is stored in platform-specific directories:
| Platform | Location |
|---|---|
| Linux | ~/.local/share/ticca/ |
| macOS | ~/Library/Application Support/ticca/ |
| Windows | %APPDATA%\ticca\ |
Files
config.db— SQLite database for settings and tokenssessions/— Chat history persistenceskills/— Python skills directory
Troubleshooting
OAuth Login Issues
If the OAuth callback fails:
- Ensure no firewall is blocking localhost ports 8000-8010
- Try closing other applications that might use these ports
- Check the logs with
RUST_LOG=debug cargo run -p ticca-app
Linux: FUSE for LibreOffice
LibreOffice is distributed as an AppImage requiring FUSE 2:
# Debian/Ubuntu
sudo apt install libfuse2
# Fedora
sudo dnf install fuse
See docs/fuse-installation.md for details.
Performance Issues
- Ensure you're running a release build (
cargo build --release) - Close unused terminal processes in the System Executions tab
- Large projects may benefit from
.ticcaignorefile (same format as.gitignore)
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Guidelines
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
- Keep commits focused and atomic
License
MIT License — see LICENSE for details.
Acknowledgments
- Iced — Cross-platform GUI framework
- Rig — LLM orchestration library
- ripgrep — Fast regex search
- Theme inspirations: Catppuccin, Dracula, Nord, Tokyo Night, One Dark, Gruvbox