https://github.com/94solutions/yoda
Wise and powerful personal assistant, available in your nearest terminal
https://github.com/94solutions/yoda
ai chat chatbot cli devtools go golang hacktoberfest ollama personal-assistant
Last synced: 3 months ago
JSON representation
Wise and powerful personal assistant, available in your nearest terminal
- Host: GitHub
- URL: https://github.com/94solutions/yoda
- Owner: 94solutions
- License: mit
- Created: 2016-12-25T10:35:07.000Z (almost 9 years ago)
- Default Branch: v3
- Last Pushed: 2025-07-13T19:26:37.000Z (3 months ago)
- Last Synced: 2025-07-13T20:35:09.865Z (3 months ago)
- Topics: ai, chat, chatbot, cli, devtools, go, golang, hacktoberfest, ollama, personal-assistant
- Language: Go
- Homepage: https://94solutions.github.io/yoda/
- Size: 47.1 MB
- Stars: 743
- Watchers: 25
- Forks: 154
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome-github-stars - 94solutions/yoda - Wise and powerful personal assistant, available in your nearest terminal (Python)
README
# Yoda - Personal Assistant CLI
[](https://golang.org)
[](LICENSE)
[](https://github.com/94solutions/yoda/actions/workflows/build.yml)Yoda is a modern, extensible command-line personal assistant built in Go. It features a plugin-based architecture, local AI integration via Ollama, and a focus on privacy and performance.
## 1. Features
- **Fast Performance**: Built in Go for speed and efficiency
- **Plugin Architecture**: Extensible with custom plugins
- **AI Integration**: Local AI processing with Ollama support
- **Privacy-First**: All processing happens locally
- **Configuration Management**: Flexible YAML-based configuration
- **Cross-Platform**: Works on Linux, macOS, and Windows## 2. Quick Start
### 2.1. Installation
#### 2.1.1. Option 1: Build from Source
```bash
# Clone the repository
git clone https://github.com/94solutions/yoda.git# Build the binary
make build# Install to system (optional)
make install
```#### 2.1.2. Option 2: Download Pre-built Binary
Download the latest release for your platform from the [releases page](https://github.com/94solutions/yoda/releases).
### 2.2. Initial Setup
Initialize Yoda configuration:
```bash
yoda init
```This creates the configuration directory at `~/.yoda/` and sets up the default configuration.
### 2.3. Basic Usage
```bash
# Show help
yoda --help# List available plugins
yoda plugin list# View configuration
yoda config list# Get a specific config value
yoda config get global.ai.model# Set a config value
yoda config set global.ai.model "llama3.1"
```## 3. Configuration
Yoda uses a YAML configuration file located at `~/.yoda/config.yaml`. The configuration includes:
### 3.1. AI Settings
```yaml
global:
ai:
model: "codellama"
max_context_length: 4096
temperature: 0.7
base_url: "http://localhost:11434"
```### 3.2. Plugin Settings
```yaml
global:
plugins:
auto_discovery: true
trusted_sources: ["official", "community"]
plugin_dirs: []
disabled_plugins: []
```### 3.3. Security Settings
```yaml
global:
security:
plugin_sandboxing: true
api_rate_limiting: true
```## 4. Plugin Management
### 4.1. Built-in Commands
- `yoda plugin list` - List all available plugins
- `yoda plugin enable ` - Enable a plugin
- `yoda plugin disable ` - Disable a plugin
- `yoda plugin refresh` - Refresh plugin registry### 4.2. Plugin Development
Yoda supports an extensible plugin system. Plugins can be:
1. **Built-in plugins** - Core functionality (config, plugin management)
2. **External plugins** - Custom functionality (coming soon)
3. **AI-generated plugins** - Generated by the AI backend (planned)## 5. Development
### 5.1. Prerequisites
- Go 1.24 or later
- Make (optional, for convenience)### 5.2. Building
```bash
# Install dependencies
make deps# Build the binary
make build# Build for development (with race detector)
make dev# Build for all platforms
make build-all
```### 5.3. Testing
```bash
# Run tests
make test# Run tests with coverage
make test-coverage# Run linter
make lint# Format code
make fmt
```### 5.4. Project Structure
```bash
yoda
├── cmd
│ └── yoda
│ └── main.go. # main application entry point
├── go.mod # Go module definition
├── internal
│ └── commands # CLI commands implementation
│ ├── config.go
│ ├── init.go
│ └── plugin.go
├── Makefile # Commands for build automation
├── pkg
│ ├── config
│ │ └── manager.go # Config management
│ ├── database
│ │ └── connection.go # DB connectivity
│ └── plugin
│ └── manager.go # Plugin management
└── README.md # This file
```## 6. Architecture
Yoda follows a modular architecture:
- **CLI Layer**: Cobra-based command interface
- **Core Services**: Configuration, plugin management, database
- **Plugin System**: Extensible plugin architecture
- **Data Layer**: SQLite for local storage
- **AI Backend**: Separate service for AI functionality (planned)## 7. Roadmap
### 7.1. Phase 1: Core Infrastructure ✅
- [x] Go CLI framework setup
- [x] Basic plugin system
- [x] Configuration management
- [x] Database integration### 7.2. Phase 2: AI Integration (In Progress)
- [ ] Ollama integration service
- [ ] AI command interface
- [ ] Context management
- [ ] Code generation### 7.3. Phase 3: Plugin Ecosystem
- [ ] External plugin loading
- [ ] Plugin marketplace
- [ ] AI-powered plugin generation
- [ ] Security framework## 8. Contributing
We welcome contributions! Please see our [contributing guidelines](CONTRIBUTING.md) for details.
### 8.1. Development Workflow
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests for new functionality
5. Run `make test` and `make lint`
6. Submit a pull request## 9. Troubleshooting
### 9.1. Common Issues
**Database Connection Error**
```
Error loading plugins: failed to connect to database: out of memory (14)
```
This usually occurs on first run. Initialize Yoda with `yoda init` to set up the database.**Configuration Not Found**
Run `yoda init` to create the default configuration.**Plugin Loading Issues**
Try `yoda plugin refresh` to reload the plugin registry.## 10. License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 11. Related Projects
- [Yoda v2](https://github.com/94solutions/yoda/tree/v2) - Python implementation
- [Ollama](https://ollama.com) - Local LLM runtime
- [Cobra](https://github.com/spf13/cobra) - CLI framework## 12. Support
- [Documentation](https://94solutions.github.io/yoda)
- [Issue Tracker](https://github.com/94solutions/yoda/issues)
- [Discussions](https://github.com/94solutions/yoda/discussions)---
**May the source be with you! 🌟**