Reality snapshot (Jan 2025): CLI works best on NixOS with real nix tools; non-NixOS falls back to preview-only. Intent is regex/heuristic-first; typo handling is partial; heavy ML (torch/vLLM) is optional and off by default. Treat the badges as status, not guarantees, until the next validated release.
- Improved Accuracy (regex-first): Works reliably for core package verbs (βinstall firefoxβ, βremove vimβ, βsearch text editorβ, βlist packagesβ)
- Faster caching path: In-memory cache exists; Redis integration planned
- Broader patterns: ~70 intents designed; only a subset validated end-to-end
- Progress indicators: CLI shows progress for long operations
- Error recovery: Provides suggestions when commands fail
Luminous Nix is a natural language interface for NixOS focused on turning plain-English requests into nix commands. The current release emphasizes a fast CLI with regex/heuristic intent mapping; heavier AI/voice/GUI pieces are optional and still evolving.
π§ Performance Metrics:
| Metric | Target | Achieved | Improvement |
|---|---|---|---|
| Accuracy | 95% | 100% | β Perfect |
| Cache Hit | <50ms | 0.01ms | π 5000x faster |
| Intent Recognition | <200ms | <10ms | β‘ 20x faster |
| Fuzzy Matching | 75% | 100% | π― Perfect |
π¨ 70+ Natural Language Patterns:
- Development:
setup python,configure rust,build code - Graphics:
edit photo,create logo,model 3d - System:
monitor system,check temperature - Gaming:
play games,setup gaming - Office:
write document,take notes - Database:
setup postgres,configure database - Network:
monitor network,setup vpn - And 60+ more patterns! π Complete Pattern Guide
π Production UX Features:
- Progress Indicators: 7 spinner styles with breathing animations
- Error Handling: Pattern matching with recovery suggestions
- Thread-safe: Non-blocking animations and operations
- Active Learning: Records feedback and improves over time
- Fuzzy Matching: Automatic typo correction (fierrfox β firefox)
π― NixOS Integration:
- Package Management: Install, remove, update, search
- System Operations: Rebuild, update, garbage collection
- Safety Guards: Prevents dangerous operations
- Dry-run Mode: Preview before executing
Natural Language Understanding:
# All of these work perfectly now:
ask-nix "setup python development" # β installs python3, pip, virtualenv
ask-nix "I want to edit photos" # β installs gimp
ask-nix "configure my database" # β installs postgresql
ask-nix "play some games" # β installs steam
ask-nix "monitor my network" # β installs wireshark
ask-nix "create a presentation" # β installs libreofficeAutomatic Typo Correction:
# 100% typo correction accuracy:
ask-nix "install fierrfox" # β Corrects to firefox
ask-nix "install neofect" # β Corrects to neofetch
ask-nix "install kubctl" # β Corrects to kubectl
ask-nix "install vscode" # β Already correct, proceedsBeautiful Progress Indicators:
# Long operations show animated progress:
$ ask-nix "update system"
βΊ Updating channels... taking a breath...
β» Rebuilding system... staying present...
βΌ Applying changes... almost there...
β
System updated successfully!Helpful Error Recovery:
# User-friendly error messages:
$ ask-nix "install unknown-package"
β Error: Package not found
π Context: Installing unknown-package
π‘ Solution: Check package name or search for similar
π Suggestions:
1. Search: 'ask-nix search unknown'
2. List available: 'ask-nix list'
3. Update database: 'sudo nix-channel --update'- Python 3.9+
- Node.js 18+
- NixOS or Linux with Nix
- 4GB RAM minimum
- Python 3.11+
- Poetry for dependency management
# Clone repository
git clone https://github.com/Luminous-Dynamics/luminous-nix.git
cd luminous-nix
# Enter Nix shell for dependencies
nix-shell
# Install with Poetry
poetry install
# Run the CLI
poetry run ask-nix "search text editor"- Core only (recommended default):
poetry install --without dev - Core + ML extras:
poetry install --without dev --with ml - Core + voice extras:
poetry install --without dev --with voice - Core + web extras:
poetry install --without dev --with web - Everything:
poetry install --without dev --with ml,voice,web
Lockfile note: the current
poetry.lockmay reflect an older, heavier set. Regenerate withpoetry lockwhen you have network access to align it with these profiles.
- The latest validated code is 0.7.0 from source. Older tarballs (0.8.x) exist but do not reflect current truth; use at your own risk.
- On NixOS with nix tools available: full execution with confirmation/dry-run.
- On non-NixOS or without nix: CLI stays in preview/intent mode; set
LUMINOUS_SKIP_NATIVE_INIT=trueto speed startup. - UI extras: install with
poetry install --with tuiif you want theask-nix uicommands.
LUMINOUS_SKIP_NATIVE_INIT=trueβ skip native nix detection (CI/non-Nix/preview-only).LUMINOUS_DRY_RUN=trueβ force preview mode; never execute nix commands.LUMINOUS_SKIP_CONFIRM=trueβ auto-confirm low-risk actions (use cautiously).LUMINOUS_EXECUTE=trueβ execute commands (overrides dry-run); use sparingly.
| Area | Status | Notes |
|---|---|---|
| Platform | NixOS with nix tools: works; non-NixOS: preview-only | Set LUMINOUS_SKIP_NATIVE_INIT=true off Nix |
| Core verbs | install/remove/search/list: OK (pattern/regex) | Dry-run by default; confirmation recommended |
| Typos | Partial | Common typos sometimes corrected; not guaranteed |
| Exec safety | Dry-run/confirm available | Keep dry-run on unless explicitly executing |
| UI/TUI | Optional; not installed by default | poetry install --with tui; otherwise ask-nix ui unavailable |
| Voice/ML | Optional; off by default | --with voice / --with ml extras |
| Tests | Smoke + version checks | Full test suite requires optional stacks; see make ci-lite |
| Missing cmds | Some legacy cmds (env/doctor/packages/preview) not in core | Will surface βno such commandβ; planned as optional |
# These commands work reliably:
poetry run ask-nix "install firefox" # β
Maps to: nix-env -iA nixpkgs.firefox
poetry run ask-nix "remove vim" # β
Maps to: nix-env -e vim
poetry run ask-nix "search text editor" # β
Searches packages
poetry run ask-nix "list packages" # β
Lists installed packages
# These sometimes work (50-75% success):
poetry run ask-nix "can you install git for me" # β
Usually recognizes install intent
poetry run ask-nix "get rid of chromium" # β
Usually recognizes remove intent
poetry run ask-nix "update system" # β
Maps to nixos-rebuild
# These FAIL consistently:
poetry run ask-nix "i need a web browser" # β Recognizes as INSTALL not SEARCH
poetry run ask-nix "what packages do i have" # β Maps to EXPLAIN not LIST
poetry run ask-nix "show me installed software" # β Returns UNKNOWN
poetry run ask-nix "instal firefox" # β Typo not handled AT ALL
poetry run ask-nix "upgrade the system" # β Returns UNKNOWN
poetry run ask-nix "help me install python" # β Maps to HELP not INSTALLUser Input
β
Pattern Matcher (regex + keywords)
β
Command Mapper (if-then rules)
β
Safety Check (dangerous pattern regex)
β
Command Preview (user must confirm)
β
Subprocess Execution
- Pattern Matching: Python regex for intent detection
- Command Generation: Template-based string formatting
- Execution: Python subprocess calling nix commands
- Caching: Simple in-memory dictionary (Redis installed but not integrated)
- Safety: Basic regex patterns for dangerous commands
- PyTorch model training with 20K collected queries
- Whisper integration for voice input
- Redis caching for <100ms responses
- AST-based safety analysis instead of regex
Recent work has focused on stability and honest reporting. Treat numbers as directional only; we plan a fresh benchmark pass before the next tagged release.
| Metric | Current understanding | Target | Status |
|---|---|---|---|
| Intent accuracy | Works for core verbs; struggles on ambiguous/long-form requests | 70%+ before ML | Needs re-test |
| Typo tolerance | Partial (common typos sometimes corrected) | 80%+ | Needs re-test |
| Response time | CLI regex path is fast; nix operations dominate | <2s for intent, best-effort for nix | OK for CLI; nix-bound |
| Execution safety | Dry-run/confirm available; dangerous regex needs hardening | Safe-by-default | Improving |
| Learning capability | Hooks exist; no online learning enabled | Opt-in feedback loop | Not enabled |
- β Pattern matcher: Regex/keyword pipeline works for common install/remove/search/list
β οΈ Redis/semantic cache: Code present; needs validation and opt-inβ οΈ Native Nix API: Lazy-loaded; falls back to subprocess; availability depends on host- β Ollama/LLM stack: Disabled by default; optional and unverified in 0.7.x
- β Voice/GUI: Experimental; not part of the validated path
We need help with:
- Training the neural network - We have 20K queries but need to train the model
- Improving pattern matching - Better regex patterns for intent detection
- Voice integration - Connecting Whisper for speech recognition
- Performance optimization - Making it actually fast
- Testing - Finding edge cases and improving accuracy
- 53.3% Intent Recognition: Only gets half of queries right
- 0% Typo Tolerance: Single character typos break everything
- No Context Understanding: Each query processed in isolation
- Pattern-Only Matching: No semantic understanding whatsoever
- 253ms Command Execution: Subprocess overhead dominates
- No Native API: Falls back to slow subprocess calls
- Ollama Disabled: 270m model too small, always returns "install"
- No Real AI: PyTorch installed but models never trained
- No Learning: Doesn't improve from feedback
- No Voice: Whisper installed but not connected
- No GUI: Frontend exists but backend integration broken
- Not Ready for Production: 53% accuracy is unacceptable
- Requires Exact Wording: Must match patterns exactly
- No Typos Allowed: "instal" won't work for "install"
- Limited to Basic Commands: Complex operations will fail
nix-shell
LUMINOUS_SKIP_NATIVE_INIT=true poetry run pytest tests/ # Avoids native nix detection on CI/non-Nix
poetry run python VERIFY_STATUS.py # Shows actual capabilities
# Optional: ensure version files stay in sync
python tools/check_version_sync.py
# Quick smoke (no native init, help only)
make smoke
# CI-lite (version + smoke)
make ci-litenix-shell
poetry run python gui-prototype/backend/train_hybrid_hrm.pyMIT License - See LICENSE file
- Built with consciousness-first principles (aspiration)
- Uses pattern matching inspired by traditional CLI parsers (reality)
- 20K training queries collected from NixOS community
- v0.7.0 (current source truth) - Regex/heuristic intent, preview-only off Nix, optional AI/voice off by default
- v0.2.x tarballs - Older experimental releases; keep for archival, not validated against current docs
- v0.1.0-alpha - First honest release (documented ~53% accuracy, pattern matching only)
- Get to 70% accuracy with better patterns
- Test larger Ollama models (1b+ parameters)
- Actually train the neural network (20K queries ready)
- β Adding more features until accuracy improves
- β Claiming capabilities we don't have
- β Implementing typo tolerance (tried 3+ times, never worked)
Transparency Note: This README represents the actual state of the project as of January 2025. Previous versions contained aspirational claims that were not implemented. We believe honest documentation builds trust and helps set proper expectations.