Local-first AI assistant for solo operators managing multiple concurrent projects.
No cloud. No subscriptions for core features. Your data never leaves your machine.
🌐 iuxis.ai — Learn more, see pricing, get started.
Iuxis is an AI-powered project management system that runs entirely on your machine. It connects to a local LLM (via Ollama), ingests your project files, and acts as a Chief of Staff — prioritizing your work, surfacing cross-project insights, generating daily briefings, and managing tasks through natural conversation.
Built for founders, indie hackers, freelancers, and anyone juggling 5–15 projects at once.
git clone https://github.com/ggospodi/iuxis.git
cd iuxis
./start.shThat's it. The start script checks dependencies, starts Ollama, launches the backend and frontend, and opens your browser to http://localhost:3000.
On first launch, Iuxis seeds two demo projects so you can explore. When you're ready, type "Ready to start" in the chat to clear them and set up your own workspace.
If you're starting from zero — no Ollama, no models — follow these steps before running ./start.sh:
1. Install Ollama (local LLM runtime):
# macOS
brew install ollama
# Linux
curl -fsSL https://ollama.ai/install.sh | sh
# Windows — download from https://ollama.ai2. Pull models (one-time download):
# Start Ollama
ollama serve &
# Pull the generation model — pick ONE based on your RAM:
ollama pull qwen2.5:32b # 64 GB RAM — best quality (recommended)
ollama pull qwen2.5:14b # 32 GB RAM — good quality, faster
ollama pull llama3:8b # 16 GB RAM — lighter, adequate for testing
# Pull the embedding model (required for knowledge search):
ollama pull nomic-embed-textIf you picked a model other than qwen2.5:32b, update config.yaml after cloning:
llm:
primary_model: "qwen2.5:14b" # ← match what you pulled3. Install Python and Node.js (if not already installed):
# macOS
brew install python node
# Linux (Ubuntu/Debian)
sudo apt install python3 python3-pip nodejs npm4. Run Iuxis:
git clone https://github.com/ggospodi/iuxis.git
cd iuxis
./start.shThe start script handles pip install, npm install, and launching all services. First run takes a minute or two for dependency installation — subsequent starts are fast.
- Python 3.11+
- Node.js 18+
- Ollama — ollama.ai
- RAM: 32 GB minimum, 64 GB recommended
- Disk: ~20 GB for models (varies by model size)
- OS: macOS, Linux. Windows via WSL2.
If you prefer to start services individually instead of using start.sh:
# Terminal 1 — Ollama
ollama serve
# Terminal 2 — Backend
cd iuxis
pip install -r requirements.txt
uvicorn iuxis_api.main:app --reload --port 8000
# Terminal 3 — Frontend
cd iuxis-web
npm install
npm run devOpen http://localhost:3000.
1. Create projects — Tell the chat: "Create a project called Acme Redesign — it's a product, P1, 20 hours per week."
2. Drop files — Put project documents into ~/iuxis-inbox/ and Iuxis automatically reads, classifies, and routes them to the right project. Meeting notes, specs, reports, checkpoints — anything relevant.
3. Ask your Chief of Staff — Chat naturally:
"What should I work on today?"
"Generate my morning briefing"
"Create a task for Acme: Review the Q2 roadmap"
"Show tasks for Acme Redesign"
"What's the status across all my projects?"
"Delete the project called Old Experiment"
4. Stay informed — The dashboard shows Today's Focus, cross-project insights, knowledge entries, and warnings about overallocation or stale work.
Project cards with priority badges, task counts, and sub-project hierarchy. Stats bar shows active projects, open tasks, and knowledge entries at a glance.
AI-generated daily priorities based on deadlines, project allocations, blocked items, and strategic importance. Refreshable on demand.
Natural language interface for everything — create projects, manage tasks, ask questions, get briefings. The LLM has full context of your projects, tasks, knowledge base, and recent activity.
Drop files into ~/iuxis-inbox/. A three-tier routing system handles classification: fuzzy filename matching → LLM content analysis → unassigned queue for ambiguous files.
Every ingested document feeds a searchable knowledge base. Facts, decisions, insights, and context are extracted and linked to projects. Full-text search and vector similarity search included.
Iuxis watches for patterns across all your projects — dependency overlaps, capacity warnings, stale work, and strategic recommendations.
Connect your repos via a Personal Access Token. Iuxis pulls commit activity, open issues, and branch state into the knowledge base. Configure in Settings.
Nest projects under parent projects for complex workstreams. Each sub-project has its own tasks, knowledge, and focus.
Three-layer protection for your data. Iuxis takes a safety snapshot before any project deletion (kept indefinitely), runs a full database backup every night at 3 AM with rolling retention, and lets you trigger manual backups any time. One-call restore brings back anything you didn't mean to delete. All backups are local — they live in ~/.iuxis/backups/ and never touch the cloud.
Iuxis runs on local models via Ollama. It's model-agnostic — any Ollama-compatible model works. No API keys required.
These are tested and known to work well with Iuxis. The model landscape moves fast — if a better open-source model drops tomorrow, you can swap it in with two commands.
| Model | RAM Required | Quality | Speed | Notes |
|---|---|---|---|---|
qwen2.5:32b |
64 GB | Excellent | Good | Default. Best balance of quality and speed |
qwen2.5:14b |
32 GB | Good | Fast | Best for 32 GB machines |
deepseek-r1:32b |
64 GB | Excellent | Slower | Strong reasoning, verbose output |
llama3:70b |
128 GB | Excellent | Slower | If you have the hardware |
llama3:8b |
16 GB | Adequate | Very fast | Minimum viable for testing |
mistral:7b |
16 GB | Adequate | Very fast | Lightweight alternative |
As larger models become available (70B+, MoE architectures, etc.), Iuxis will run them — there's no model-specific code. If Ollama can serve it, Iuxis can use it.
Two steps — pull the new model, then update the config:
# Step 1: Pull the model you want
ollama pull llama3:70b # or any model from ollama.ai/library
# Step 2: Edit config.yaml — change the model name# config.yaml
llm:
primary_backend: ollama
ollama:
base_url: http://127.0.0.1:11434
model: llama3:70b # ← Change this to any Ollama model
embedding_model: nomic-embed-text# Step 3: Restart the backend (Ctrl+C in Terminal 1, then re-run)
uvicorn iuxis_api.main:app --reload --port 8000You can also ask the chat: "Help me switch to a different model" — Iuxis will walk you through it.
Important: The embedding_model (used for knowledge search) should stay as nomic-embed-text unless you have a specific reason to change it. If you do switch embedding models, you'll need to rebuild the vector index since different models produce different-dimensional embeddings.
| System RAM | Recommended Model | What to Expect |
|---|---|---|
| 16 GB | llama3:8b or mistral:7b |
Functional but responses are less nuanced |
| 32 GB | qwen2.5:14b |
Good quality, responsive. Solid daily driver |
| 64 GB | qwen2.5:32b |
Excellent quality. The sweet spot for most users |
| 128 GB+ | llama3:70b or larger |
Best possible quality. Run the biggest model your system supports |
Iuxis offloads all inference to Ollama, so GPU acceleration (Apple Silicon, NVIDIA CUDA) is handled transparently. On Apple Silicon Macs, models run on the unified memory GPU — no separate GPU required.
"Create a project called Mobile App — product type, P1, 15 hours per week"
"Create a sub-project called API Layer under Mobile App"
Drop files into ~/iuxis-inbox/. Iuxis watches this folder and automatically routes files to the right project using a three-tier system:
- Filename matching (instant) — if the file name contains a project name, it routes immediately
- LLM content analysis (slower) — if the filename doesn't match, the LLM reads the file and classifies it
- Unassigned queue — if neither method is confident, the file goes to unassigned for manual review
Recommended file naming: projectname-topic-YYYYMMDD.md
This gives the best routing accuracy. Examples:
~/iuxis-inbox/
acme-redesign-kickoff-notes-20260401.md → Routes to "Acme Redesign"
acme-redesign-sprint-review-20260408.md → Routes to "Acme Redesign"
mobile-app-api-spec-20260401.md → Routes to "Mobile App"
random-research.md → LLM analyzes content, or unassigned
Supported file types: .md, .txt, .pdf. Iuxis extracts knowledge (facts, decisions, context) from each file and adds it to the project's knowledge base.
You don't have to follow the naming convention — the LLM can usually figure out where a file belongs from its content. But consistent naming makes routing faster and more reliable.
iuxis/
├── iuxis/ # Core Python package
│ ├── chat_handler.py # Chat engine + command parsing
│ ├── context_assembler.py # Dynamic LLM context builder
│ ├── llm_client.py # Ollama integration
│ ├── ingestion_engine.py # File ingestion pipeline
│ ├── knowledge_manager.py # Knowledge base CRUD + search
│ ├── project_manager.py # Project CRUD
│ ├── task_manager.py # Task CRUD
│ ├── insight_engine.py # Cross-project intelligence
│ ├── priority_engine.py # AI task ranking
│ ├── github_scanner.py # GitHub activity integration
│ └── premium/ # Premium features (license-gated)
├── iuxis_api/ # FastAPI backend
│ ├── main.py
│ └── routes/ # REST API endpoints
├── iuxis-web/ # Next.js frontend
│ └── src/
├── projects/ # Project data (gitignored)
├── data/ # SQLite database (gitignored)
├── config.yaml # Configuration
├── start.sh # Single-command launcher
└── seed_demo.py # Demo project seeder
Iuxis is free and open-source for core features. Premium adds compounding intelligence — features that make the system smarter over time and actively coach you:
- Automated scheduling — Morning briefings, daily schedules, and insight generation run automatically
- Process improvement engine — Weekly retrospectives on your work patterns and time estimation accuracy
- Work session heartbeat — Proactive nudges during work hours: deadline alerts, overrun detection, context-switch warnings
- Time tracking — Start/stop timers with actual vs. estimated analysis
- Advanced cross-project analysis — Deep dependency mapping and portfolio optimization
- Unlimited projects — No soft cap, optimized context for 15+ projects
$29/month or $199/year — Get Premium
| Plan | Price | Link |
|---|---|---|
| Monthly | $29/month | Subscribe Monthly |
| Annual | $199/year (save 43%) | Subscribe Annual |
Premium uses a local license key (~/.iuxis/license.key) — no cloud validation, no phone-home. Respects the local-first philosophy.
Copy the example config to get started:
cp config.example.yaml config.yamlKey settings in config.yaml:
llm:
primary_backend: ollama
ollama:
base_url: http://127.0.0.1:11434
model: qwen2.5:32b
embedding_model: nomic-embed-text
paths:
inbox: ~/iuxis-inbox
database: data/iuxis.db
ingestion:
watch_interval: 30 # Seconds between inbox scansIuxis takes data integrity seriously. Three layers of protection are built in and require no setup.
Pre-destructive snapshots. Before any project deletion, Iuxis automatically creates a safety backup. If a delete was unintended, one API call restores the project, its tasks, knowledge entries, and sub-projects. Pre-delete backups are kept indefinitely.
Daily scheduled backups. A full database snapshot is taken every night at 3:00 AM. The retention policy keeps the last 7 daily backups plus 4 weekly archives — about 11 snapshots, ~10 MB total for a typical install.
Manual snapshots. Trigger a backup any time, useful before risky operations or major edits:
curl -X POST http://localhost:8000/api/backup/create \
-H "Content-Type: application/json" \
-d '{"reason": "manual", "label": "before-major-edit"}'All backups are stored in ~/.iuxis/backups/ outside the repo. Filenames follow the pattern:
iuxis-{reason}-{label}-{YYYYMMDD-HHMMSS}.db
curl http://localhost:8000/api/backup/listOptional ?reason=scheduled|manual|pre-delete|pre-commit filter.
curl -X POST http://localhost:8000/api/backup/restore \
-H "Content-Type: application/json" \
-d '{"filename": "iuxis-pre-delete-MyProject-20260406-194413.db"}'A pre-restore safety snapshot of the current database is created automatically before the restore happens, so a restore can itself be rewound.
Backups use SQLite's online backup API — atomic, safe while the database is in active use, zero downtime.
- Backend: Python, FastAPI, SQLite, FAISS (vector search)
- Frontend: Next.js, TypeScript, Tailwind CSS
- LLM: Ollama (local), any compatible model
- Ingestion: Custom pipeline with fuzzy matching + LLM classification
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
# Fork and clone
git clone https://github.com/YOUR_USERNAME/iuxis.git
cd iuxis
# Install dev dependencies
pip install -r requirements.txt
cd iuxis-web && npm install
# Run tests
python -m pytest tests/MIT — see LICENSE for details.
Premium features are source-available under a separate license. See PREMIUM_LICENSE.md.
Built by Georgi Gospodinov — a solo operator who needed an AI Chief of Staff and decided to build one.
