|
1 | | -# 🚀 Agentic - Production-Ready TUI Framework |
| 1 | +# Agentic |
2 | 2 |
|
3 | | -[](https://github.com/gitcoder89431/agentic/actions/workflows/rust.yml) |
4 | | -[](https://opensource.org/licenses/MIT) |
| 3 | +``` |
| 4 | + █████╗ ██████╗ ███████╗███╗ ██╗████████╗██╗ ██████╗ |
| 5 | + ██╔══██╗██╔════╝ ██╔════╝████╗ ██║╚══██╔══╝██║██╔════╝ |
| 6 | + ███████║██║ ███╗█████╗ ██╔██╗ ██║ ██║ ██║██║ |
| 7 | + ██╔══██║██║ ██║██╔══╝ ██║╚██╗██║ ██║ ██║██║ |
| 8 | + ██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║ ██║╚██████╗ |
| 9 | + ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝ |
| 10 | +``` |
5 | 11 |
|
6 | | -> **Version:** 0.1.0 |
7 | | -> **Status:** Production Ready ✅ |
| 12 | +[](https://github.com/gitcoder89431/agentic/actions) |
| 13 | +[](LICENSE) |
| 14 | +[](https://crates.io/crates/agentic) |
8 | 15 |
|
9 | | -A beautiful, responsive terminal user interface (TUI) application built with modern Rust architecture. Features Everforest theming, Taffy flexbox layouts, and comprehensive event handling. |
| 16 | +**Agentic :: The agent you work WITH** |
| 17 | +**AI Model Orchestrator & Agent Framework** |
10 | 18 |
|
11 | | -## 🎨 Features |
| 19 | +<!-- GIF Demo placeholder - add your demo GIF here --> |
| 20 | + |
12 | 21 |
|
13 | | -- **🌲 Everforest Theme System**: Dark/Light theme variants with runtime switching |
14 | | -- **📐 Responsive Layouts**: Taffy-powered flexbox-style layout engine |
15 | | -- **⚡ Event-Driven Architecture**: Clean async/await with proper state management |
16 | | -- **🔧 Production Ready**: Comprehensive CI/CD pipeline with quality gates |
17 | | -- **🎯 Zero Dependencies**: Minimal, focused dependency tree |
18 | | -- **✨ Beautiful ASCII Art**: Elegant logo with centered presentation |
| 22 | +## Core Philosophy |
19 | 23 |
|
20 | | -## 🚀 Quick Start |
| 24 | +Agentic transforms the typical command-response dynamic into true collaboration. Instead of barking orders at an AI, you work together through thoughtful query refinement and synthesis. Our "Karesansui" design philosophy creates a zen garden of computational thought - clean, minimalist, and purposeful. Every interaction flows like carefully placed stones in sand, building toward profound understanding rather than quick answers. |
21 | 25 |
|
22 | | -### Prerequisites |
| 26 | +## Key Features |
23 | 27 |
|
24 | | -- **Rust 1.70+** (tested with latest stable) |
25 | | -- **Terminal** with true color support recommended |
| 28 | +• **Collaborative Query Refinement** via a Local AI Orchestrator |
| 29 | +• **Seamless Integration** with Powerful Cloud Models (via OpenRouter) |
| 30 | +• **Minimalist, Keyboard-Driven** "Zen Garden" TUI |
| 31 | +• **Creates Structured, "Atomic Notes"** (Markdown + YAML) for your Knowledge Base |
| 32 | +• **Built in Rust** 🦀 for a Fast, Native Experience |
26 | 33 |
|
27 | | -### Installation & Running |
| 34 | +## Installation |
28 | 35 |
|
29 | | -```bash |
30 | | -# Clone the repository |
31 | | -git clone https://github.com/gitcoder89431/agentic.git |
32 | | -cd agentic |
| 36 | +### Download Release Binaries |
33 | 37 |
|
34 | | -# Run the application |
35 | | -cargo run |
36 | | - |
37 | | -# Or build for release |
38 | | -cargo build --release |
39 | | -./target/release/agentic |
| 38 | +**macOS (Intel/Apple Silicon)** |
| 39 | +```bash |
| 40 | +curl -L https://github.com/gitcoder89431/agentic/releases/download/v0.1.0/agentic-macos.tar.gz | tar xz |
| 41 | +sudo mv agentic /usr/local/bin/ |
40 | 42 | ``` |
41 | 43 |
|
42 | | -### Controls |
43 | | - |
44 | | -- **ESC / q**: Quit application |
45 | | -- **t / T**: Toggle between Dark/Light themes |
46 | | -- **Ctrl+C**: Force quit with signal handling |
47 | | -- **Terminal Resize**: Automatic layout recalculation |
48 | | - |
49 | | -## 🛠️ Development |
50 | | - |
51 | | -### Local Development |
52 | | - |
53 | | -Before pushing changes, run these checks locally: |
54 | | - |
| 44 | +**Linux (x86_64)** |
55 | 45 | ```bash |
56 | | -# Format code |
57 | | -cargo fmt |
58 | | - |
59 | | -# Check formatting |
60 | | -cargo fmt --check |
61 | | - |
62 | | -# Run lints |
63 | | -cargo clippy -- -D warnings |
64 | | - |
65 | | -# Run tests |
66 | | -cargo test |
67 | | - |
68 | | -# Check compilation |
69 | | -cargo check |
| 46 | +curl -L https://github.com/gitcoder89431/agentic/releases/download/v0.1.0/agentic-linux.tar.gz | tar xz |
| 47 | +sudo mv agentic /usr/local/bin/ |
70 | 48 | ``` |
71 | 49 |
|
72 | | -### 🔧 CI/CD Pipeline |
| 50 | +**Windows** |
| 51 | +```powershell |
| 52 | +# Download from releases page and add to PATH |
| 53 | +# https://github.com/gitcoder89431/agentic/releases/download/v0.1.0/agentic-windows.zip |
| 54 | +``` |
73 | 55 |
|
74 | | -Our GitHub Actions CI pipeline ensures code quality with multiple validation layers: |
| 56 | +### Build from Source |
| 57 | +```bash |
| 58 | +git clone https://github.com/gitcoder89431/agentic.git |
| 59 | +cd agentic |
| 60 | +cargo build --release |
| 61 | +./target/release/agentic-tui |
| 62 | +``` |
75 | 63 |
|
76 | | -#### Pipeline Jobs |
| 64 | +## Configuration |
77 | 65 |
|
78 | | -1. **🏗️ Build & Test** (`build_and_test`) |
79 | | - - Code formatting validation (`cargo fmt --check`) |
80 | | - - Lint checking with zero warnings (`cargo clippy -- -D warnings`) |
81 | | - - Compilation verification (`cargo build --verbose`) |
82 | | - - Test suite execution (`cargo test --verbose`) |
| 66 | +⚠️ **Important**: Agentic requires **BOTH** a local AI model (for query orchestration) and a cloud model (for synthesis) to function. The local model privately refines your questions, then the cloud model creates the final insights. |
83 | 67 |
|
84 | | -2. **🛡️ Security Audit** (`security_audit`) |
85 | | - - Vulnerability scanning with `cargo audit` |
86 | | - - Checks for known security issues in dependencies |
| 68 | +### Complete Setup Guide |
87 | 69 |
|
88 | | -3. **📦 Dependency Check** (`check_dependencies`) |
89 | | - - Validates dependency freshness with `cargo outdated` |
90 | | - - Ensures we're using up-to-date packages |
| 70 | +Follow these steps in order - you need both components: |
91 | 71 |
|
92 | | -#### Trigger Conditions |
| 72 | +#### Step 1: Local AI Setup (Required) |
93 | 73 |
|
94 | | -- **Pushes to `main`**: Full pipeline execution |
95 | | -- **Pull Requests**: All jobs run before merge approval |
96 | | -- **Manual triggers**: Available via GitHub Actions UI |
| 74 | +1. **Install Ollama** (Free, runs on your computer) |
| 75 | + ```bash |
| 76 | + # macOS |
| 77 | + brew install ollama |
| 78 | + |
| 79 | + # Or download from: https://ollama.ai |
| 80 | + ``` |
97 | 81 |
|
98 | | -#### Performance Optimizations |
| 82 | +2. **Download a Local Model** |
| 83 | + ```bash |
| 84 | + # Start Ollama service |
| 85 | + ollama serve |
| 86 | + |
| 87 | + # In another terminal, pull a model (this may take a few minutes) |
| 88 | + ollama pull llama3.2:3b # Good balance of speed/quality |
| 89 | + # or |
| 90 | + ollama pull qwen2.5:7b # Higher quality, needs more RAM |
| 91 | + ``` |
99 | 92 |
|
100 | | -- **Cargo Registry Cache**: Speeds up dependency downloads |
101 | | -- **Target Directory Cache**: Accelerates compilation |
102 | | -- **Hash-Based Invalidation**: Efficient cache management with `Cargo.lock` |
| 93 | +3. **Configure in Agentic** |
| 94 | + - In Settings, set "Local Endpoint" to `localhost:11434` |
| 95 | + - Select your downloaded model from the list |
| 96 | + - This handles initial query refinement privately on your machine |
103 | 97 |
|
104 | | -#### Common Failure Scenarios & Fixes |
| 98 | +#### Step 2: Cloud Setup (Required) |
105 | 99 |
|
106 | | -| Error | Cause | Fix | |
107 | | -|-------|-------|-----| |
108 | | -| `cargo fmt --check failed` | Inconsistent formatting | Run `cargo fmt` locally | |
109 | | -| `cargo clippy warnings` | Lint violations | Fix warnings or use `#[allow(...)]` | |
110 | | -| `tests failed` | Broken functionality | Fix failing tests | |
111 | | -| `security vulnerabilities` | Outdated dependencies | Run `cargo audit fix` | |
| 100 | +1. **Get an OpenRouter Account** |
| 101 | + - Visit [openrouter.ai](https://openrouter.ai) and sign up (takes 2 minutes) |
| 102 | + - Generate an API key from your dashboard |
| 103 | + - Add $5-10 credit OR use free models (see guide below) |
112 | 104 |
|
113 | | -### 🏗️ Architecture |
| 105 | +2. **Configure in Agentic** |
| 106 | + - Run `agentic` in your terminal |
| 107 | + - Press `s` to open Settings |
| 108 | + - Navigate to "Cloud API Key" and paste your OpenRouter key |
| 109 | + - Browse available models and select one (see model selection guide below) |
| 110 | + - Press `s` to save |
114 | 111 |
|
115 | | -``` |
116 | | -┌─────────────────────────────────────────────────────────┐ |
117 | | -│ AGENTIC TUI │ |
118 | | -├─────────────────────────────────────────────────────────┤ |
119 | | -│ Event System │ Theme Engine │ Layout Engine │ |
120 | | -│ ────────────── │ ───────────── │ ───────────── │ |
121 | | -│ • AppEvent │ • Everforest │ • Taffy 3-Layer │ |
122 | | -│ • AppState │ • Dark/Light │ • Header/Body │ |
123 | | -│ • Async Runtime │ • Runtime Switch│ • Footer/Flex │ |
124 | | -├─────────────────────────────────────────────────────────┤ |
125 | | -│ Ratatui Core │ |
126 | | -│ Crossterm Backend │ |
127 | | -└─────────────────────────────────────────────────────────┘ |
128 | | -``` |
| 112 | +### 🎯 Model Selection Guide |
129 | 113 |
|
130 | | -### 📁 Project Structure |
| 114 | +When choosing a cloud model in Agentic's settings, look for these indicators: |
131 | 115 |
|
132 | | -``` |
133 | | -agentic/ |
134 | | -├── .github/workflows/ # CI/CD pipeline configuration |
135 | | -├── src/ |
136 | | -│ ├── events.rs # Event handling & state management |
137 | | -│ ├── layout.rs # Taffy flexbox layout engine |
138 | | -│ ├── theme.rs # Everforest theme system |
139 | | -│ ├── ui/ # User interface components |
140 | | -│ │ ├── app.rs # Main application logic |
141 | | -│ │ └── mod.rs # UI module declarations |
142 | | -│ ├── lib.rs # Library root |
143 | | -│ └── main.rs # Application entry point |
144 | | -├── examples/ # Demo applications |
145 | | -├── Cargo.toml # Project dependencies |
146 | | -└── README.md # Project documentation |
147 | | -``` |
| 116 | +**💰 Cost Structure:** |
| 117 | +- Models with `:free` suffix = Completely free (perfect for learning) |
| 118 | +- Models with pricing = Pay per token (~$0.50-10 per 1M tokens) |
| 119 | +- Check the "pricing" column to see prompt/completion costs |
148 | 120 |
|
149 | | -## 🧪 Testing |
| 121 | +**🧠 Model Types:** |
| 122 | +- Look for `:instruct` or `:chat` in the name = Good for conversations (what you want) |
| 123 | +- Avoid `:base` models = Raw models without instruction training |
| 124 | +- Avoid `:embed` models = For embeddings only, not chat |
150 | 125 |
|
151 | | -### Unit Tests |
| 126 | +**📏 Context Length:** |
| 127 | +- 4k-8k tokens = Good for short conversations |
| 128 | +- 32k-128k tokens = Better for longer discussions |
| 129 | +- 1M+ tokens = Can handle very long contexts (costs more) |
152 | 130 |
|
153 | | -```bash |
154 | | -# Run all tests |
155 | | -cargo test |
| 131 | +**🏷️ Model Families:** |
| 132 | +- `anthropic/claude-*` = Excellent reasoning and safety |
| 133 | +- `openai/gpt-*` = Well-rounded performance |
| 134 | +- `meta-llama/*` = Open source, good quality |
| 135 | +- `google/gemini-*` = Strong at analysis and coding |
| 136 | +- `deepseek/*` = Often have free versions available |
156 | 137 |
|
157 | | -# Run tests with output |
158 | | -cargo test -- --nocapture |
| 138 | +**💡 Beginner Tips:** |
| 139 | +- Start with any `:free` model to test the system |
| 140 | +- If you have credits, try `anthropic/claude-3.5-sonnet` for quality |
| 141 | +- Higher context length = more expensive but can handle longer discussions |
| 142 | +- The model list updates frequently - newer models often perform better |
159 | 143 |
|
160 | | -# Run specific test |
161 | | -cargo test test_name |
162 | | -``` |
| 144 | +#### Step 3: Ready to Collaborate! |
163 | 145 |
|
164 | | -### Manual Testing |
| 146 | +- Type your question naturally |
| 147 | +- Watch the local model orchestrate thoughtful proposals |
| 148 | +- Choose a proposal for the cloud model to synthesize |
| 149 | +- Save the resulting "atomic note" to your knowledge base |
| 150 | +- **Files are automatically saved** to `~/Documents/ruixen/` as Markdown with YAML metadata |
165 | 151 |
|
166 | | -```bash |
167 | | -# Theme demo |
168 | | -cargo run --example theme_demo |
| 152 | +### Why Both Models? |
169 | 153 |
|
170 | | -# Layout demo |
171 | | -cargo run --example layout_demo |
| 154 | +The **local model** (Ollama) handles query orchestration privately on your machine, while the **cloud model** (OpenRouter) provides powerful synthesis capabilities. This hybrid approach gives you both privacy and cutting-edge AI performance! |
172 | 155 |
|
173 | | -# Input handling demo |
174 | | -cargo run --example issue_4_demo |
175 | | -``` |
| 156 | +### Troubleshooting |
176 | 157 |
|
177 | | -## 📦 Dependencies |
| 158 | +**"Local endpoint not accessible"** |
| 159 | +- Make sure Ollama is running: `ollama serve` |
| 160 | +- Check the endpoint in settings: `localhost:11434` |
178 | 161 |
|
179 | | -### Core Dependencies |
180 | | -- **ratatui** (0.27): Terminal UI framework |
181 | | -- **crossterm** (0.27): Cross-platform terminal handling |
182 | | -- **tokio** (1.0): Async runtime |
183 | | -- **taffy** (0.4): Flexbox layout engine |
| 162 | +**"OpenRouter API key invalid"** |
| 163 | +- Verify your key starts with `sk-or-v1-` |
| 164 | +- Check you have credits or selected a free model |
184 | 165 |
|
185 | | -### Development Dependencies |
186 | | -- **GitHub Actions**: Automated CI/CD |
187 | | -- **cargo-audit**: Security vulnerability scanning |
188 | | -- **cargo-outdated**: Dependency freshness checks |
| 166 | +**"Model not found"** |
| 167 | +- For local: ensure model is downloaded with `ollama list` |
| 168 | +- For cloud: verify model name exactly matches OpenRouter's list |
| 169 | + |
| 170 | +## Usage |
| 171 | + |
| 172 | +**Navigation** |
| 173 | +- `Tab/Shift+Tab` - Navigate between UI elements |
| 174 | +- `↑/↓ or j/k` - Move through lists and proposals |
| 175 | +- `Enter` - Select/Confirm actions |
| 176 | +- `Esc` - Return to previous screen |
| 177 | +- `q` - Quit application |
| 178 | + |
| 179 | +**Slash Commands** |
| 180 | +- `/settings` - Open configuration modal |
| 181 | +- `/about` - View application information |
| 182 | +- `/quit` - Exit the application |
| 183 | + |
| 184 | +**Key Bindings** |
| 185 | +- `s` - Quick access to Settings |
| 186 | +- `a` - Quick access to About |
| 187 | +- `Left/Right` - Scroll through About page content |
189 | 188 |
|
190 | | -## 🤝 Contributing |
| 189 | +## Architecture |
191 | 190 |
|
192 | | -1. **Fork** the repository |
193 | | -2. **Create** a feature branch (`git checkout -b feature/amazing-feature`) |
194 | | -3. **Run** local checks (`cargo fmt && cargo clippy && cargo test`) |
195 | | -4. **Commit** changes (`git commit -m 'Add amazing feature'`) |
196 | | -5. **Push** to branch (`git push origin feature/amazing-feature`) |
197 | | -6. **Open** a Pull Request |
| 191 | +Agentic follows the RuixenOS workspace architecture: |
198 | 192 |
|
199 | | -### Pull Request Process |
| 193 | +``` |
| 194 | +agentic/ |
| 195 | +├── crates/ |
| 196 | +│ ├── agentic-core/ # The "motor" - reusable AI logic |
| 197 | +│ ├── agentic-tui/ # The "drill" - terminal interface |
| 198 | +│ └── starlit-gui/ # Future graphical interface |
| 199 | +└── Cargo.toml # Workspace configuration |
| 200 | +``` |
200 | 201 |
|
201 | | -- ✅ All CI checks must pass (formatting, lints, tests, security) |
202 | | -- ✅ Code must follow Rust best practices |
203 | | -- ✅ Include tests for new functionality |
204 | | -- ✅ Update documentation as needed |
| 202 | +This modular design allows the same AI capabilities to power multiple interfaces while maintaining clean separation between logic and presentation. |
205 | 203 |
|
206 | | -## 📄 License |
| 204 | +## License |
207 | 205 |
|
208 | | -This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details. |
| 206 | +MIT License - see [LICENSE](LICENSE) for details. |
209 | 207 |
|
210 | | -## 🙏 Acknowledgments |
| 208 | +## Contributing |
211 | 209 |
|
212 | | -- **Ratatui Community** for the excellent TUI framework |
213 | | -- **Taffy Team** for the powerful layout engine |
214 | | -- **Everforest** color scheme for beautiful aesthetics |
215 | | -- **Rust Community** for amazing tooling and ecosystem |
| 210 | +Built with constitutional Rust patterns and love. Issues and PRs welcome! |
216 | 211 |
|
217 | 212 | --- |
218 | 213 |
|
219 | | -**Built with ❤️ using Rust** 🦀 |
| 214 | +*The curiosity machine doesn't just process queries - it awakens wonder.* |
0 commit comments