Turn your PC into a private, autonomous AI lab, without melting your GPU.
IronSilo is a completely local, cross-platform (Windows, macOS, Linux) AI development sandbox. It packages a state-of-the-art coding assistant, a graph-enhanced RAG engine, an autonomous browser swarm agent, and a context-compression proxy into a single, resource-capped environment powered by a Caddy API Gateway.
It runs on low-to-mid spec machines by strictly limiting background RAM to ~4GB, dedicating 100% of your GPU to your actual AI model.
CLI namespace: All TurinTech tools are also available under the
turintech-prefix for consistency. Useturintech-ironsilointerchangeably withironsilo. The prefixed name is the canonical entry point across the portfolio.
📦 What's in the Box?
IronSilo uses a True Silo architecture: a single API Gateway (Caddy) on port 8080 that routes all traffic to internal services with prefix stripping. No ports exposed to your network - everything stays private.
The Intelligence Layer (Locked in Docker Container):
- Caddy API Gateway: Single entry point on port 8080. Routes all traffic with automatic prefix stripping. Simple Caddyfile config replaces complex Traefik YAML.
- LightRAG: Graph-enhanced private RAG engine (replaces Khoj). CPU-only, pip-installable, 34k⭐. Drop in documents and ask questions about them.
- Memory Service & sqlite-vec: Persistent memory storage (replaces Genesys/pgvector). Zero infra — no separate Docker container needed.
- Headroom Proxy: The central hub. Intercepts prompts and compresses them (CPU/ONNX) before sending to your GPU. Saves VRAM without accuracy loss. Replaces LLMLingua+torch.
- SearxNG: Private, privacy-respecting web search. No Google/Bing tracking.
- Browser Swarm: Autonomous web browsing via headless Chrome, controlled by AI.
The Action Layer (Runs via Aider CLI):
- Aider CLI: Your specialized coding engine. Aider maps your project's Abstract Syntax Tree (AST) to use 4x fewer tokens than standard agents. It runs natively in your terminal to safely execute bash commands, read linter errors, and apply complex line-by-line file diffs.
🛠️ Step 0: Install Prerequisites
If you are starting from a fresh computer, you must install these core tools first:
1. The Core Environment
- Git: Aider requires Git to track code changes. Download at git-scm.com (Linux:
sudo apt install gitorsudo pacman -S git). - Python / pip: Required to install Aider natively (
pip install aider-chat).
2. Docker (The Sandbox Engine)
You need Docker to run the background databases and proxies safely.
- Windows & macOS: Download and install Docker Desktop. Windows users: Ensure WSL2 is enabled during installation. Open the app and make sure it is running in your system tray.
- Linux (tested on Ubuntu 24.04): Do not install Docker Desktop. Install Docker Engine directly:
sudo apt install docker.io docker-compose-v2. Then add your user to thedockergroup:sudo usermod -aG docker $USER. Log out and back in.
3. NVIDIA Container Toolkit (Linux only, for GPU acceleration)
- Install the NVIDIA Container Toolkit:
sudo apt install nvidia-container-toolkit - Restart Docker:
sudo systemctl restart docker
🚀 Step 1: Quick Start
# 1. Clone the repository
git clone https://github.com/iknowkungfubar/IronSilo.git
cd IronSilo
# 2. Make the launch script executable
chmod +x ironsilo.sh
# 3. Run the setup wizard
python3 setup/wizard.py
# 4. Start the stack
docker compose up -d
# 5. Check status
python3 -m ironsilo status
Power Tip: Add this alias to your ~/.bashrc or ~/.zshrc:
alias ironsilo='python3 -m ironsilo'
🧪 Testing
IronSilo uses pytest for comprehensive testing. Tests are organized in:
| Directory | Purpose |
|---|---|
tests/unit/ |
Unit tests for individual modules |
tests/integration/ |
Integration tests for cross-module workflows |
tests/fuzz/ |
Fuzz testing for edge cases and security |
# Install dev dependencies
pip install -e ".[dev]"
# Run all tests
pytest tests/
# Run unit tests only
pytest tests/unit/
# Run specific test file
pytest tests/unit/test_proxy_proxy.py
# Run with coverage
pytest --cov=.
Test Coverage
- Total Tests: 870+ tests (870 passing, 4 skipped)
- Code Coverage: 82%
- Test Types:
- Unit tests for all core modules
- Integration tests for proxy and security
- Fuzz testing for input edge cases
💡 Usage
Command Line Interface
IronSilo provides a CLI for managing your AI development environment:
# Show status of all services
ironsilo status
# View real-time logs
ironsilo logs
# Access the web dashboard
ironsilo dashboard
# Run diagnostics
ironsilo health
All commands also have turintech- prefixed aliases for portfolio consistency:
# Same commands with Turintech prefix
turintech-ironsilo status
turintech-ironsilo logs
turintech-ironsilo dashboard
turintech-ironsilo health
turintech-ironsilo-setup
turintech-ironsilo-monitor
Web Dashboard
Once the stack is running, access the monitoring dashboard:
- Health Dashboard: http://localhost:8080/health
- RAG Search: http://localhost:8080/rag/
- MCP Discover: http://localhost:8080/mcp/rag/discover
- Prometheus Metrics: http://localhost:8080/metrics
Configuration
Environment variables can be set in a .env file or exported directly:
# LLM Configuration
export LLM_API_KEY=your_key # API key for LLM provider
export LLM_MODEL=gpt-4 # Model name to use
export LLM_PROVIDER=openai # Provider (openai, anthropic, ollama, etc.)
# Infrastructure Paths
export IRON_SILO_ROOT=/path/to/data # Where IronSilo stores data (default: ~/.ironsilo/)
# Debugging
export IRONSILO_DEBUG=true # Enable verbose logging
📚 Documentation
| Document | Description |
|---|---|
| Simple Manual | Getting started guide for new users |
| Advanced Architecture | Deep dive into components and internals |
| OpenCode Integration | Using IronSilo with OpenCode IDE |
🤝 Contributing
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Install dev dependencies:
pip install -e ".[dev]" - Make your changes
- Run tests:
pytest tests/ - Check coverage:
pytest --cov=. - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Code Style
- We use
rufffor linting and formatting - Run
ruff check .before committing - Type hints are required for all public APIs
Commit Guidelines
- Use conventional commit format:
type(scope): description - Types:
feat,fix,docs,refactor,test,chore,security - Keep commits focused on a single change
Testing Guidelines
- Write tests for all new features
- Ensure existing tests continue to pass
- Aim for >80% coverage on new code
Reporting Issues
Found a bug? Open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Python version, Docker version)
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔒 Security
Important: IronSilo is designed for local, single-user environments. It has not been audited for multi-user or public-facing security. Running it on a network exposes internal services to potential attacks.
Reporting Security Issues
If you discover a security vulnerability, please open a draft security advisory on GitHub rather than a public issue.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ironsilo-2.1.1.tar.gz.
File metadata
- Download URL: ironsilo-2.1.1.tar.gz
- Upload date:
- Size: 104.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bca86ab9c228a341f896bff93466a2376177681fc532b6b87189301899e0490
|
|
| MD5 |
b3305b74a1cdb758ce7ea4238a83c9c8
|
|
| BLAKE2b-256 |
a9c6c0214213976f02953b3bfd314ec3fef8264fc60b2ba611473852c13ddfe3
|
File details
Details for the file ironsilo-2.1.1-py3-none-any.whl.
File metadata
- Download URL: ironsilo-2.1.1-py3-none-any.whl
- Upload date:
- Size: 122.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac410ffe23d99f065a4566b4615ed41f16e197262d64679ca5055ce473556765
|
|
| MD5 |
aa280154164876e819187907a3d452f6
|
|
| BLAKE2b-256 |
7a28ca08226d1372288fe3a4ac6effcb8dc21388410fc2ef38c734704b80de62
|