The AI Layer Your Linux Desktop Has Been Waiting For
Electra AI Center is a fully-integrated, OS-level artificial intelligence suite that ships as a single compiled binary. It runs in your terminal, launches a full VSCode-style GUI, integrates with your file manager, connects to Telegram, manages your finances, and autonomously executes tasks while you work on something else.
Think of it as your personal Jarvis — not a chat window bolted onto your desktop, but a deep integration layer that can read your screen, manage your windows, write and run code, browse the web, control smart home devices, generate income, and talk back through Telegram when jobs are done.
Architecture Overview
Electra is a single compiled Nuitka binary (ai_terminal.bin) that bundles the terminal app, GUI, all agents, LSP integration, and finance bot. It connects to the Electra backend API at makululinux.us:2007 for AI inference — the server handles conversation history, model routing, and Patreon tier validation.
write_file, run_command, browser_navigate, lsp_goto_definition, notify_user, tile_windows, etc.conversation_id for persistent history (server-side MemPalace). disables chatty AI for tool-calling tasks.Installation
MakuluLinux (Official)
Electra ships pre-installed on MakuluLinux. Launch from your application menu or terminal.
Other Linux Distributions
Electra is compiled against Ubuntu 22.04 for maximum compatibility and runs on most major distributions including Ubuntu, Fedora, Arch, Mint, Pop!_OS, Debian, openSUSE, Manjaro, and others.
# Run the installer (headless distros use install-headless.sh) bash install.sh # Or headless (server / no display) bash install-headless.sh
First Launch
# Terminal mode ai_terminal.bin # GUI mode (VSCode-style interface) ai_terminal.bin --gui # Or type /gui from inside the terminal app
Login
/login # Log in with your Electra / Patreon account /account # View current account + tier info /refresh # Re-sync after changing your Patreon plan /unlock # Unlock Pro features with a licence key
Patreon Tiers
Electra uses Patreon for subscription management. Your tier determines daily request limits and which AI providers you can access.
| Tier | Price | Daily Requests | Model Access | Special Features |
|---|---|---|---|---|
| Free | $0/mo | 50 / day | Free-tier models only | Trial period available |
| Private | $5/mo | 500 / day | All free models | Full feature access |
| Corporal | $10/mo | 1,500 / day | All free models | Full feature access |
| Sergeant | $20/mo | 4,000 / day | All free models | Full feature access |
| Major | $40/mo | 10,000 / day | All models + paid providers (ds-/bt-/ol-) | Agent Swarm, paid-tier auto-routing priority |
| Commander | $100/mo | Unlimited | All models + paid providers | Agent Swarm, highest priority routing |
Paid Provider Models (Major / Commander only)
These providers cost real money per token and are gated to Major ($40) and Commander ($100) tiers. They appear in the model picker for all tiers with a 🔒 lock icon, and auto-routing prioritises them for Major/Commander users.
- DeepSeek Direct (ds-) — ds-deepseek-v4-flash ($0.14/$0.28 per 1M), ds-deepseek-v4-pro ($1.74/$3.48 per 1M). Automatic prefix caching at 98% discount.
- ByteDance Ark (bt-) — bt-ark-code-latest, bt-dola-seed-2.0-pro/lite/code, bt-bytedance-seed-code, bt-glm-5.1, bt-glm-4.7, bt-kimi-k2.5, bt-gpt-oss-120b.
- Ollama Cloud (ol-) — 30+ hosted models including ol-qwen3-coder-480b, ol-devstral-2-123b, ol-nemotron-3-ultra, ol-deepseek-v4-pro, ol-kimi-k2.6, and more.
Operating Modes
Electra has six primary operating modes, each with its own AI personality, tool set, and capabilities. Switch modes with a slash command from anywhere.
Chat Mode
The default conversational mode. Backed by server-side memory (conversation_id), so context persists across sessions when you keep the same conversation.
Chat-Mode Commands
| Command | Description |
|---|---|
| /research <topic> | Deep web research + comprehensive markdown report |
| /search <query> | Web search — result stays in conversation history |
| /fetch <url> | Fetch and read a specific URL into context |
| /screenshot [q] | Capture screen + AI vision analysis |
| /screenshot last [q] | Re-analyse last screenshot with a new question |
| /ocr <image> [explain] | Extract text from image (tesseract) + optional AI explain |
| /image <file> | Analyse an existing image file with AI vision |
| /sfimage <prompt> | Generate an AI image via SiliconFlow |
| /clip / /copy | Copy last AI response to clipboard |
| /clip explain [q] | AI explains current clipboard content |
| /clip watch on|off | Toggle clipboard history tracking |
| /weather [city] | Current weather via wttr.in |
| /travel <request> | Full trip planner — flights, hotels, itinerary, weather |
| /qr <text|url> | Generate QR code — opens PNG + prints in terminal |
| /qr wifi <SSID> <pass> | Generate WiFi join QR code |
| /qr contact <name> <tel> | Generate vCard QR code |
| /encrypt / /decrypt | GPG file encryption / decryption |
| /compare <query> | Run same query on two models side-by-side |
| /ask <question> | Quick question without leaving current mode |
| /ask ai <model> <q> | One-shot question to a specific model |
/search <query> or ask about anything current — Electra fetches real-time data via LangSearch (primary) or Pollinations (fallback) and injects it into the conversation./image <file> to point Electra at any image file. It sends the image to the vision-capable backend and returns a detailed analysis.~/.electra/personas/ to give the AI a specific personality, tone, or set of constraints for specialized conversations./voice for single voice-input queries, /talk for a continuous voice dialogue loop, and /speak to enable TTS output so Electra speaks its responses aloud./clip copies the last AI response to the clipboard. /save saves the conversation to a timestamped file. /history displays the raw conversation log./remind <time> <message> sets background thread reminders that fire as visible terminal notifications at the specified time.You: What are the key differences between Wayland and X11?
Electra: Provides a detailed, formatted comparison with history of both display protocols, covering architecture, security model, performance characteristics, and current Linux desktop ecosystem adoption.
You: /search latest Linux kernel release notes
Electra: Searches the web, returns current kernel release information with key changes, and adds the result to conversation history for follow-up questions.
You: /image ~/screenshots/error_dialog.png what does this error mean?
Electra: Analyses the screenshot, identifies the error message, explains the cause, and suggests solutions.
You: /remind 30m take a break and stretch
Electra: Reminder set. In 30 minutes a notification will appear: "take a break and stretch".
You: /talk
Electra: Starts listening. You speak naturally — Electra transcribes, processes, responds (optionally with TTS), and listens again in a continuous loop. Say "stop" to exit.
Coder Mode
The full autonomous software engineer. Coder mode runs an agentic loop of up to 80 turns (100 in extended mode), calling tools to write files, run code, check errors, and iterate — just like a human developer. All changes are backed up before modification and can be rolled back.
What the AI Can Do in Coder Mode
- Read the full project file tree and symbol index
- Write, edit, create, move, copy, and delete files (GUI tree auto-updates)
- Run shell commands, capture output, auto-fix errors
- Call LSP tools: go-to-definition, find-all-references, rename-symbol, hover
- Run the project (
/run) and auto-fix crashes - Lint files (
/lint) and apply fixes - Read AT-SPI screen context (live text from any focused window)
- Send desktop notifications when long tasks complete
- Tile / arrange windows (Hyprland / wmctrl)
- Generate and run tests (pytest, Jest, go test, RSpec, cargo test)
Coder-Mode Commands
| Command | Description |
|---|---|
| /set <path> | Change workspace root — rebuilds symbol index |
| /cd <path> | Change current directory |
| /init [type] [name] | Create a new project (python, flask, react, node, bash, electron…) |
| /template <name> | Scaffold from a built-in template (flask, react, fastapi, django…) |
| /index | Rebuild symbol/dependency index + show semantic index status |
| /vec-index | Force full semantic vector index rebuild (ChromaDB) |
| /refs <symbol> | Find all callers of a function (file:line) |
| /debug [error] | Focused bug-fix agent |
| /run [cmd] | Auto-detect + run project; AI fixes crashes |
| /lint [file] | Run linter (pylint/eslint/shellcheck) + AI fix suggestions |
| /review <file> | Structured AI code review (no changes) |
| /ghost [on|off] | Toggle inline AI ghost-text completions (Tab to accept) |
| /lsp | Show LSP server status (pyright, tsserver, rust-analyzer, clangd, gopls) |
| /swarm | 🐝 Agent Swarm — parallel multi-agent multi-file editing (Major/Commander) |
| /delegate <task> | Run a coder agent in the background |
| /delegate t1 | t2 | t3 | Run multiple agents IN PARALLEL |
| /pk / /project-knowledge | View persistent project knowledge base (.electra_project.md) |
| /pk init | Create a .electra_project.md template in current workspace |
| /pk add <Section> | <note> | Quick-add a note to the project knowledge base |
| /autowrite [on|off] | Skip confirmation for AI-created new files |
| /dry-run [on|off] | Intercept every run_command for manual approval |
| /sandbox | Toggle Docker sandbox — isolates run_command from host system |
| /rollback [N|all] | Undo N tracked AI changes (default 1); /rollback all for full undo |
| /checkpoint [label] | Snapshot all modified files — can restore later |
| /restore [label] | Restore files from a /checkpoint snapshot |
| /pin <file> [desc] | Pin a file with optional AI description — always in context |
| /tabs | Show which files are currently in open-tab AI context |
| /exec <lang> <code> | Run inline code snippet: /exec python print(2**10) |
| /project-config | View per-project .electra.json settings |
| /electra_ignore | Show/create .electra_ignore exclusion file |
Live Code Map
Coder mode maintains a real-time map of all project files and when they were last modified. The AI uses this to know the exact current state of the workspace at every turn. The code map badge in the GUI activity log shows the tracked file count. Error messages include structured extraction of FILE:LINE:TYPE from tracebacks, and intent-aware routing uses the narrowest tool subset for DEBUG vs REFACTOR vs QUESTION tasks.
Per-Project Stable Memory
Each workspace gets a stable conversation_id derived from its path. This means the server-side MemPalace remembers your project across sessions — the AI knows what you worked on last time, what decisions were made, and what the current architecture looks like, without you having to re-explain.
You: add JWT authentication to my FastAPI app
Electra: Reads all project files → designs the auth system → creates auth.py, updates main.py, adds dependencies to requirements.txt → runs tests → shows diff before each file write → confirms completion.
You: the login endpoint returns 500 when password contains special characters, fix it
Electra: Reads the relevant files → identifies the escaping bug → applies a surgical patch → re-runs the endpoint → verifies the fix.
You: /todo add write unit tests for the payment module
Electra: Task #3 added: write unit tests for the payment module.
You: /todo work 3
Electra: Immediately starts writing comprehensive unit tests for the payment module, running them, and fixing failures until all pass.
Writer Mode
Autonomous content creation. Writer mode understands four operations: CREATE (new content), EDIT (modify existing), ADVISE (review without changes), and REMOVE (delete sections). It maintains a live document and exports to multiple formats.
| Command | Description |
|---|---|
| /outline <topic> | AI generates a structured outline; approve to start writing |
| /show | Display the current writer document in the terminal |
| /save [filename] | Save the current writer document to disk |
| /import <file> | Import PDF/DOCX/EPUB/ODT/HTML/RTF → Markdown |
| /export <fmt> [file] | Export to: pdf docx epub html odt txt |
| /wordcount / /wc [target] | Show word count or set a word-count target |
| /refine <instructions> | Targeted AI edit pass on the active file |
| /translate <lang> | Translate the active file to another language |
| /style [file] | Analyse and report the writing style of a file |
| /format <rules> | Reformat last file with style rules |
| /append <file> [instr] | AI appends content to an existing file |
| /read <file> | Read a file into context so AI can work with it |
| /blog | Blog scheduler — queue and publish AI-written posts |
| /blog post | Force-flush the queued blog post now |
You: write a technical blog post about the differences between systemd and SysV init, targeting intermediate Linux users
Electra: Generates a complete blog post — intro hook, sections on history, architecture, service management differences, practical examples with code blocks, and a conclusion with actionable takeaways. Saves to ~/workspace/blog_systemd_sysv.md and asks to open in editor.
You: write a professional cover letter for a senior Python developer position at a fintech startup
Electra: Produces a tailored cover letter in a formal but engaging tone, with customisable placeholders for company name and specific experience details.
You: /wordcount 2000
Electra: Word target set to 2,000. All subsequent outputs will aim for this length, with progress reported after each generation.
Novel Mode
A complete AI-powered book authoring pipeline. Enter your story idea and Novel Mode guides you through the full process from high-level overview to chapter-by-chapter writing to final EPUB/PDF export.
/export epub or /export pdf — requires pandoc. Chapter files assembled and packaged into a distributable ebook.| Command | Description |
|---|---|
| /novel | Enter Novel Mode — type your story prompt to begin |
| /inspect | Audit completeness: checks every chapter + scene file |
| /chat | Exit Novel Mode (restores previous model) |
You: /novel
Electra: Enters Novel mode, auto-switches to optimal model. "Describe your story — characters, setting, genre, anything that inspires you."
You: A hard science fiction thriller about a team of six astronauts on Mars who discover a signal that appears to originate from inside the planet. One of them is secretly an AI. Set 2041.
Electra: [ARCHITECT] Generates overview.md — 6 named characters with backstories and arcs, 3-act structure, 22 planned chapters, central mystery structure, thematic framework around identity and consciousness.
Electra: [CHAPTER OVERVIEWS] Writes all 22 chapter overviews with scene lists...
Electra: [SCENE WRITING] Chapter 1, Scene 1: "The Red Dust" — writes full prose scene...
You: /inspect
Electra: Runs audit — all 22 chapters complete, 87 scenes, 3 flagged as short (scenes 12-2, 15-1, 19-3). "Would you like me to expand these now?"
Command Mode
The autonomous PC manager. Command mode can install packages, manage services, control Docker, open SSH sessions, monitor system health, and perform any task you'd normally do in a terminal — driven entirely by natural language.
System Management
| Command | Description |
|---|---|
| /docker | Docker overview — containers + resource stats |
| /docker ps | All containers (running + stopped) |
| /docker logs <name> | Tail container logs |
| /docker start|stop <name> | Control a container |
| /pkg <request> | AI package manager (apt/pip/npm/cargo/snap) |
| /pkg search <term> | Search across apt, pip, snap |
| /pkg update | Update all system packages |
| /service | List systemd services + failed units |
| /service status <name> | Detailed status of one service |
| /service create <desc> | AI writes + installs a new .service file |
| /monitor [opts] | Proactive system health monitor (CPU/RAM/disk/services → alerts) |
| /monitor cpu=85 ram=90 | Custom alert thresholds |
| /monitor check | Instant one-shot health check |
| /ssh <alias|user@host> | Open SSH session to a remote machine |
| /ssh add <alias> <host> | Save an SSH host for quick access |
| /log [n] [unit] | journalctl viewer + AI explain |
| /env | Shell environment snapshot |
| /ps / /kill <n> | Background process management |
| /fixscreen [hint] | Screenshot desktop → AI diagnoses + fixes visual issues |
| /theme <request> | Natural-language desktop theme/icon changes |
| /actions [install|status] | Install AI right-click actions in file manager (Nemo/Dolphin/Nautilus/Thunar/Caja/PCManFM) |
You: set up a new Python virtual environment for a Django project
Electra: Shows the command sequence: python3 -m venv venv && source venv/bin/activate && pip install django djangorestframework. Awaits confirmation, then executes each step, captures output, and reports success.
You: /explain
Electra: Explains the last command's output in plain English — what was installed, any warnings, next steps.
GUI Mode — VSCode-Style IDE
Launch with /gui from the terminal or ai_terminal.bin --gui. The GUI provides a full desktop IDE experience — no terminal required.
Layout Overview
Command Mode 3-Pane Layout
In Command mode, the GUI switches to a dynamic 3-pane layout. An execution log pane auto-shows during tasks, and a file preview pane appears when files are being edited. Both collapse automatically when tasks complete — full command-mode parity without ever opening a terminal.
GUI Feature Highlights
Command Palette (Ctrl+Shift+P)
VS Code-style command palette with fuzzy search across all commands, file operations, mode switches, and custom actions. Press Ctrl+Shift+P from anywhere in the GUI.
Quick File Open (Ctrl+P)
Fuzzy file picker — type part of any filename to jump to it instantly. Same muscle memory as VS Code.
Inline AI Edit (Ctrl+K)
Select text in the editor and press Ctrl+K to open a popup that lets you describe a change. The AI surgically rewrites just the selected region with surrounding file context (±30 lines) injected for accuracy. Preserves indentation automatically.
Git Panel
Full Git integration in the sidebar: unstaged/staged changes, diff viewer, commit message, push/pull. Visual indicators on file tree for modified/added/deleted files.
Diagnostics Tab
Live LSP diagnostics from pyright, tsserver, rust-analyzer, clangd, or gopls displayed in a sortable list. Click any error to jump to it in the editor. AI can auto-fix all issues in the list.
Minimap
Code minimap on the right edge of the editor. Toggle with Ctrl+Shift+\ or the button in the status bar.
Split Editor
Split the editor vertically with Ctrl+\. Each pane has its own tab bar and independently tracks the active file.
Theme System
Electra is fully isolated from the system GTK theme — no matter what theme the user has installed (Breeze, Mint-Y, Arc, Yaru, etc.), Electra renders identically. Built-in themes: Light Ink, Dark Terminal, Solarized, Monokai, Nord, and any themes installed via Open VSX extensions.
Voice Input
Click the 🎤 button or press Ctrl+M to dictate a message. Uses local speech recognition. The transcript appears in the chat input automatically.
Image Attachment
Click the attachment button or press Ctrl+I to attach an image for AI vision analysis. Compatible with vision-capable models from NVIDIA NIM, MiniMax, and others.
@-Mention File Context
Type @filename in the chat to inject that file's content directly into the AI context. The AI can then discuss, edit, or refactor the file without you having to copy-paste.
Next-Step Suggestions
After a Coder task completes, the GUI offers 3 clickable suggested next actions based on what was just done — e.g. "Run tests", "Commit changes", "Review diff".
Session Restore
The workspace, open tabs, and scroll positions are restored between sessions automatically.
VS Code Extensions (Open VSX Registry)
Click the 🧩 Extensions icon in the activity bar to open the extension browser. Search or browse the Open VSX Registry (open-vsx.org) and install .vsix extensions with one click.
What Gets Activated on Install
~/.config/electra/snippets/. Tab-expands triggers in the editor. Snippet palette accessible via ✂ button or Ctrl+Shift+S. Tabstop navigation with Tab (jumps $1→$2→$3) and Esc to exit.electra_lsp automatically. TextMate grammars registered with GtkSourceView for syntax highlighting.~/.config/electra/extensions/ · Themes to ~/.config/electra/extensions/themes/ · Manifest at ~/.config/electra/extensions/.manifest.json
LSP Integration & Ghost-Text
Language Server Protocol (LSP)
Electra integrates with language servers for real-time code intelligence. Use /lsp to check status.
| Language | Server | Install |
|---|---|---|
| Python | pyright | pip install pyright |
| TypeScript / JavaScript | tsserver (typescript-language-server) | npm install -g typescript-language-server |
| Rust | rust-analyzer | rustup component add rust-analyzer |
| C / C++ | clangd | apt install clangd |
| Go | gopls | go install golang.org/x/tools/gopls@latest |
The AI coder agent has four LSP tools it can call: lsp_goto_definition, lsp_find_references, lsp_rename_symbol, and lsp_hover. LSP diagnostics appear in the Diagnostics tab in real-time.
Ghost-Text Inline Completions
As you type, Electra shows a grayed-out AI completion suggestion. Press Tab to accept it, or keep typing to dismiss it. Ghost-text uses a dedicated fast-model chain completely separate from the main coder agent:
nemotron-nano-4b → mis-mistral-small-2603 → qc-qwen-coder-flash → ms-qwen2.5-coder-7b → llm7-deepseek-coder-v2-lite
The ghost model auto-advances on timeout or empty response and resets to the fastest model after a successful completion. Select the primary ghost model from the 👻 picker in the status bar (visible in Coder mode).
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Ctrl+Shift+P | Command palette |
| Ctrl+P | Quick file open (fuzzy finder) |
| Ctrl+S | Save current file |
| Ctrl+W | Close current tab |
| Ctrl+N | New file |
| Ctrl+F | Find in file |
| Ctrl+Shift+H | Find and replace |
| Ctrl+K | Inline AI edit (on selection) |
| Ctrl+\ | Toggle split editor |
| Ctrl+Shift+\ | Toggle minimap |
| Ctrl+G | Go to line |
| Ctrl+D | Select next occurrence |
| Ctrl+/ | Toggle comment |
| Ctrl+Shift+G | Generate tests for active file |
| Ctrl+Shift+I | Format document |
| Ctrl+Shift+M | Markdown preview |
| Ctrl+Shift+T | TODO panel |
| Ctrl+Shift+S | Open snippet palette |
| Ctrl+` | Switch to terminal tab |
| Ctrl+I | Attach image for AI analysis |
| Ctrl+M | Voice input |
| Tab (in editor) | Accept ghost-text suggestion / expand snippet |
| Tab (in snippet) | Jump to next tabstop ($1→$2→$3) |
| Esc (in snippet) | Exit snippet tabstop mode |
Model Providers & Prefixes
Electra connects to 11 provider networks with 150+ models. Each provider has a prefix used in the model picker and command line. Use /model to switch models interactively.
| Prefix | Provider | Tier | Notes |
|---|---|---|---|
| (no prefix) | NVIDIA NIM | All paid | Primary provider. Stepfun, Qwen, Mistral, Gemma, Phi-4, Nemotron, Kimi, MiniMax, Meta, DeepSeek, GLM, Cerebras-hosted models |
| cb- | Cerebras | All paid | Wafer-scale ultra-fast inference (~3000 tok/s). cb-gpt-oss-120b, cb-zai-glm-4.7. Full tool calling. |
| ds- | DeepSeek Direct | Major/Commander 🔒 | Pay per token. Prefix caching (98% discount). ds-deepseek-v4-flash ($0.14/$0.28/1M), ds-deepseek-v4-pro ($1.74/$3.48/1M) |
| bt- | ByteDance Ark | Major/Commander 🔒 | Volcengine Ark platform. bt-ark-code-latest, bt-dola-seed-2.0-pro/lite/code, bt-glm-5.1, bt-kimi-k2.5, bt-gpt-oss-120b. Badge: [T] |
| ol- | Ollama Cloud | Major/Commander 🔒 | Hosted subscription. 30+ models including ol-qwen3-coder-480b, ol-devstral-2-123b, ol-nemotron-3-ultra, ol-deepseek-v4-pro, ol-kimi-k2-thinking |
| opr- | OpenRouter | All paid | ~1900 req/day budget across 2 keys. User-selectable only (not auto-routed). 10+ models via OpenRouter. |
| mis- | Mistral Direct | All paid | 5 keys × 2000 req/day = 10,000/day budget. mis-devstral-2512, mis-mistral-large-2512, mis-mistral-medium-3-5, mis-mistral-small-2603 |
| qc- | QwenCloud / DashScope | All paid | 2 keys, 600-15000 RPM. Web search + function calling. qwen3.7-max/plus, qwen3.6-flash/plus/max, qwen3.5-flash, qwen-coder-plus/flash, glm-5.1 |
| ms- | ModelScope | All paid | 2000 req/day, hard 1 RPS cap. Excluded from auto-routing. Step-3.7/3.5-Flash, GLM-5.1/5/4.7, Qwen3-Coder-480B, DeepSeek-V4-Pro/Flash |
| llm7- | LLM7 | Free tier | 120 RPM, no daily cap. llm7-fast/default/pro always-on models. GPT-4.1-nano, GPT-4o-mini, GPT-o4-mini, Gemini-Flash, DeepSeek-R1, Codestral, Qwen2.5-Coder-32B |
| sf- | SiliconFlow | All paid (manual only) | ⚠️ Permanently banned from auto-routing. Models available in picker for manual selection. Large model catalog. |
Notable Models by Category
| Use Case | Recommended Models |
|---|---|
| Primary Coder | stepfun-ai/step-3.5-flash (primary), step-3.7-flash (secondary) |
| Frontier Coder | qwen/qwen3-coder-480b-a35b, ol-qwen3-coder-480b, ol-devstral-2-123b, ds-deepseek-v4-pro |
| Writer / Novel | mis-mistral-large-2512, mistral-large-3-675b, minimax-m3 |
| Fast / Free | qc-qwen3.5-flash (default fallback), llm7-fast, nemotron-3-nano-30b |
| Ghost Text | nemotron-nano-4b → mis-mistral-small-2603 → qc-qwen-coder-flash (auto chain) |
| Large Context | minimax-m3 (1M ctx), kimi-k2.6, qwen3-coder-480b |
| Ultra-Fast Inference | cb-gpt-oss-120b (~3000 tok/s via Cerebras wafer-scale) |
$ /model deepseek-v3.2
→ Switched to deepseek-v3.2 instantly.
$ /model
→ Shows numbered list of all models, enter a number to switch.
$ /think
→ Toggles reasoning token display on/off (useful for DeepSeek, Kimi, Nemotron reasoning models).
Auto-Routing System
When you send a message, Electra's routing system selects the best available model automatically — no manual switching required. The system uses a composite 60% capability / 40% speed score to rank candidates.
How Routing Works
- Capability caps check: Each mode has required capability flags (e.g., Coder requires Co+Re or T+Ag). Models that don't meet the caps are excluded.
- Paid pre-pass (Major/Commander): If you're on Major or Commander tier, the router first tries PAID_PROVIDER_MODELS (ds-/bt-/ol-) before falling back to free models.
- Large context detection: If your prompt + context exceeds 60K characters, only models in _LARGE_CTX_MODELS are eligible.
- Ban list: sf- models and ms- models are never auto-routed. Models that fail repeatedly are temporarily banned and retried on the next request.
- Fallback chain: If the primary model fails mid-stream, Electra silently switches to the next model in the chain and continues — you rarely see an error.
/model to see the full model picker and select a specific model. Your choice persists until you change it or switch workspaces. The picker shows 🔒 [Major+] or 🔒 [Pro] on locked models. If you drop tiers, Electra auto-switches you to qc-qwen3.5-flash (the free fallback).
You: clean up my temp files
Electra: This could be handled two ways:
[COMMAND] Run: rm -rf ~/.cache/thumbnails/* /tmp/*
[CHAT] Explain how to identify and clean temp files manually
Which did you mean? [c]ommand / [t]alk it through:
🐝 Agent Swarm
Agent Swarm parallelizes large multi-file coding tasks across multiple AI workers simultaneously. An orchestrator analyzes your request, splits it into sub-tasks, runs worker agents in parallel, then passes all results to a reviewer for final integration. Requires Major ($40) or Commander ($100) tier.
/swarm # Toggle swarm mode on/off /swarm on # Enable swarm for next task /swarm off # Disable swarm, return to normal coder
Plugin Engine
Electra has a full plugin system. Plugins are Python files that extend the routing system with custom commands, hooks, and agents. The AI can write plugins for you on demand, and a community GitHub marketplace lets you share and discover plugins.
Plugin Commands
| Command | Description |
|---|---|
| /plugin | Enter Plugin Coder mode — AI writes a plugin for you |
| /plugin <request> | Describe a plugin and AI writes it immediately |
| /plugin list | List all loaded plugins |
| /plugin reload | Hot-reload plugins without restarting |
| /plugin sync | Sync GitHub → local (install missing community plugins) |
| /plugin install <file> | Download a plugin from the community repo |
| /plugin publish <file> | Publish your plugin to the community repo |
| /plugin community | Browse community plugins on GitHub |
| /repair | Self-Repair ledger — forged plugins & error log |
| /repair forge <desc> | Manually forge a plugin for a new capability |
| /patterns / /gaps | Show detected capability gaps + auto-forge status |
Plugin API
A plugin is a Python file placed in ~/.config/ai_plugins/. It exports a ROUTE_TOKEN, run(prompt, context) function, and optional lifecycle hooks. Plugins can add slash commands, register as routing agents, and notify the GUI panel.
Self-Repair / Auto-Forge
When Electra encounters a repeated error it can't handle, it automatically forges a repair plugin using the Plugin Forge AI agent. These plugins are installed silently and auto-synced to GitHub for the community. The repair ledger (/repair) shows all forged plugins and error history.
Delegate & Parallel Agents
Send tasks to background agents while you continue working. Results are posted to your memory and session when complete.
# Run a single background task /delegate write unit tests for utils.py # Run 3 tasks IN PARALLEL (pipe-separated) /delegate refactor auth.py | update README.md | add type hints to models.py # Check task status /tasks /tasks cancel <id> /tasks clear
Headless Browser Agent
Electra embeds a headless Chromium browser that the AI can control. Navigate pages, click elements, fill forms, take screenshots, and extract content — all from natural language commands.
/browser install # Install Playwright + Chromium (~170 MB, one-time) /browser status # Check browser availability # Then just ask naturally: "Go to github.com and find open issues tagged 'bug'" "Fill out the contact form at example.com" "Take a screenshot of the dashboard" "Extract all product prices from this page"
AT-SPI Screen Context & D-Bus
AT-SPI Daemon (Screen Reader)
On first launch, Electra auto-installs electra_atspi_daemon.py as a systemd user service. It polls the AT-SPI accessibility tree every 2.5 seconds and writes the focused window's text to /tmp/electra_atspi_context.json.
The AI automatically reads this context in Chat, Command, and Coder modes — so it can see your browser tab, terminal output, or PDF document without you having to copy-paste anything. Context is only injected when actually available, to avoid wasting tokens.
| Command | Description |
|---|---|
| /atspi status | Show AT-SPI daemon status |
| /atspi start|stop|restart | Control the daemon |
| /atspi install|uninstall | Manage systemd service |
| /atspi on|off | Enable/disable context injection |
| /atspi logs | View daemon logs |
D-Bus Daemon (Two-Way Communication)
The D-Bus daemon (electra_dbus.py) exposes Electra on the session bus at org.makululinux.Electra. Any desktop application, script, or keyboard shortcut can send queries to Electra and receive responses.
dbus-send --session --print-reply \ --dest=org.makululinux.Electra \ /org/makululinux/Electra \ org.makululinux.Electra.Query string:"explain this error"
| Command | Description |
|---|---|
| /dbus status | Show D-Bus daemon status |
| /dbus start|stop|restart | Control the daemon |
| /dbus install|uninstall|reinstall | Manage systemd service |
| /dbus ping | Test D-Bus connectivity |
| /dbus logs | View daemon logs |
Integrations Overview
Electra integrates with a wide range of external services. All integrations are compiled into the single binary — no separate installs required.
- → /telegram start|stop|reset|status
- → /telegram service start|stop|install
- → /github connect <PAT>
- → /github repos | clone | push | status
Telegram Bridge
The Telegram bridge lets you control Electra from your phone or any Telegram client. Configure your bot token and chat ID, then start the bridge with /telegram.
# First-time setup — enter your bot token and chat ID /telegram # Check status /telegram status # Manage as a systemd service (survives reboots) /telegram service start /telegram service install # Registers as user service /telegram service enable
/screenshot or ask naturally — Electra takes a full-desktop PNG, uploads it, and replies with a clickable URL. Add a number for a countdown: /screenshot 5./webcam — Electra launches a fullscreen webcam GUI app (cheese → guvcview → kamoso → camorama, in that priority order), waits for the live preview to render, then takes a full desktop screenshot capturing the live feed — effectively snapshotting what the webcam sees. The image is uploaded and a URL is sent. Install with: sudo apt install cheese or sudo apt install guvcview./sendfile ~/Documents/party.jpg — Electra locates the file, checks it is under 50 MB, uploads it to the server, and sends a download link directly in Telegram.install the telegram daemon
Electra runs the installer, enables the service, and confirms it is active.
start the telegram background service
restart the telegram service
what's the telegram service status
show telegram service logs
stop the telegram daemon
systemctl --user status electra-telegram
systemctl --user start electra-telegram
systemctl --user stop electra-telegram
systemctl --user restart electra-telegram
journalctl --user -u electra-telegram -f # live log tail
bash install_telegram_service.sh --uninstall # remove service
Telegram: what's the weather in Tokyo?
Bot reply: 🌤 Tokyo: 24°C, Partly Cloudy. Humidity 68%. AQI: Good (34). Feels like 26°C.
Telegram: set a new wallpaper — something with mountains and snow
Bot reply: 🖼 Found a stunning alpine snowscape from Pexels. Wallpaper set! [sends photo preview]
Telegram: send an email to John and tell him the meeting is rescheduled to Friday 3pm
Bot reply: 📧 Draft ready: "Hi John, just a quick note — our meeting has been rescheduled to Friday at 3:00 PM. Let me know if that works for you." Send? [y/n]
Telegram: /screenshot
Bot reply: 📸 Desktop Screenshot
https://makululinux.us/files/screenshot_a3f1c2b4.png
Link expires in 24 hours
Telegram: /webcam
Bot reply: 📷 Webcam Snapshot
https://makululinux.us/files/webcam_snap_7d9e0f12.jpg
Link expires in 24 hours
Telegram: /sendfile ~/Documents/party.jpg
Bot reply: 📎 File Readyparty.jpg
https://makululinux.us/files/party_jpg_4b2a1e9c.jpg
Link expires in 24 hours
Home Assistant
Connect Electra to your Home Assistant instance to control smart home devices with natural language via the AI.
/ha # Home Assistant overview
/ha status # Connection status
/ha lights on|off # Control lights
/ha <natural language> # "turn off all lights in bedroom"
# "set living room temperature to 22"
"turn on the living room lights"
"what's the temperature in the bedroom"
"lock the front door"
"turn off all lights"
"is the garage door open"
"set the thermostat to 22 degrees"
"activate the movie night scene"
GitHub Integration
Connect with a Personal Access Token to enable full GitHub management from inside Electra.
| Command | Description |
|---|---|
| /github connect <PAT> | Connect with Personal Access Token |
| /github repos | List your repositories |
| /github clone <repo> | Clone a repository to local |
| /github push [msg] | Stage all, commit, and push current workspace |
| /github status | Show connection + repo status |
| /github disconnect | Remove GitHub credentials |
Auto-Bug-Reporting
When Electra encounters an unhandled error in an agent, it automatically files a GitHub issue on the Electra repository with full context (error type, traceback, system info, model, prompt). A fingerprint prevents duplicate reports. You can view the auto-report ledger at any time.
"show my open PRs"
"list my repos"
"what's in my notifications"
"create an issue about the login bug"
"what failed in CI"
"star the flask-sqlalchemy repo"
Finance Bot
The Finance Bot is an autonomous income generation system integrated into Electra. It manages 33 income stream modules — scanning for opportunities, creating content and products, drafting proposals, and queuing actions for your approval. It never moves money without your explicit /hustle approve <id> command.
Finance Center GUI
Type /finance to open the full Finance Center — a dashboard with income streams, wallet balances, earnings history, opportunity scanner, approval queue, and an AI chat assistant trained on your income data.
Terminal Commands
| Command | Description |
|---|---|
| /hustle | Show full dashboard |
| /hustle setup | Interactive setup wizard — configure APIs and goals |
| /hustle goal <amount> | Set monthly income goal (USD) |
| /hustle scan | Run opportunity scanner now |
| /hustle status | Full income stream status |
| /hustle streams | List all 33 stream modules |
| /hustle add <stream> | Enable a stream |
| /hustle pause <stream> | Pause a stream |
| /hustle run <stream> | Run a stream module manually |
| /hustle approve <id> | Approve a pending action (required before money moves) |
| /hustle reject <id> | Reject a pending action |
| /hustle pending | List all pending approval actions |
| /hustle wallet | Configure PayPal / Stripe |
| /hustle report | Full earnings report |
| /hustle log | View recent activity log |
| /hustle invest | Review investment opportunities |
| /hustle capital <amt> | Set available capital (USD) |
| /hustle imagine <prompt> | Generate print-ready image for products |
Data Storage
- Config:
~/.config/ai_terminal/finance.conf - Database:
~/.electra/finance.db(SQLite — earnings, products, pending actions, opportunities, activity log) - Content:
~/ElectraFinance/
/hustle imagine to manually generate designs./hustle
→ Dashboard: Goal $1,000/mo | Earned this month: $47.30 | Active streams: 5 | Pending: 3 actions
/hustle imagine "tropical beach sunset with palm trees" --type poster --variants 2
→ Generating 2 poster variants... Saved to ~/ElectraFinance/designs/ | Queued for Redbubble upload
/hustle scan
→ Scanning for opportunities... Found 3 new bounties on Algora ($150, $200, $500) | 2 domain flips flagged | 1 new RapidAPI niche
/hustle report
→ Earnings Report: Affiliate $22.10 | Freelance $0.00 | Bounty $0.00 | POD pending approval | Total: $22.10
33 Income Streams
Each stream is an autonomous module that creates content, products, or opportunities in its niche. Streams marked ✅ have full API integration and can publish/list without browser automation.
| # | Stream ID | Name | Description |
|---|---|---|---|
| 1 | affiliate | Affiliate Content Blog | Generate SEO posts with affiliate links, publish to WordPress |
| 2 | pod | Print-on-Demand | AI designs → Redbubble / Merch by Amazon |
| 3 | freelance | Freelance Job Scanner | Scan Upwork/PPH/Freelancer, draft proposals |
| 4 | rapidapi | RapidAPI Marketplace | Create and sell micro-API services |
| 5 | bounty | Open Source Bounties | GitHub + Algora.io bounty scanner |
| 6 | digital | Digital Products | Create and sell on Gumroad |
| 7 | newsletter | Newsletter + Affiliate | Curated newsletters via Beehiiv |
| 8 | domains | Domain Scout | Find and flip expired domains |
| 9 | stock | Stock Asset Metadata | Generate metadata for stock asset submissions |
| 10 | scanner | Opportunity Scanner | Daily AI scan for new income streams |
| 11 | youtube | YouTube Script Generator | Full video scripts + SEO packages |
| 12 | fiverr | Fiverr Gig Creator | Auto-generate Fiverr service listings |
| 13 | medium | Medium Publisher | Articles for Medium Partner Program |
| 14 | etsy | Etsy Digital Shop | Create digital listings on Etsy |
| 15 | promptpacks | AI Prompt Marketplace | Prompt packs for PromptBase / Gumroad |
| 16 | web3bounties | Web3 Bounties | Gitcoin + Bountycaster + Dework |
| 17 | notion | Notion Templates | Premium Notion template packages |
| 18 | social | Social Content Engine | Twitter threads + LinkedIn + Facebook posts |
| 19 | teespring | Teespring / Spring POD | Alt. POD platform for merch income |
| 20 | kofi | Ko-fi Content Engine | Exclusive supporter content for Ko-fi |
| 21 | lemonsqueezy ✅ | Lemon Squeezy Digital | Modern digital products — full API, instant publish |
| 22 | hashnode ✅ | Hashnode Publisher | Developer articles — instant live publish via GraphQL API |
| 23 | devto ✅ | Dev.to Publisher | Dev community articles — instant live publish via REST API |
| 24 | patreon ✅ | Patreon Posts | Auto-post exclusive supporter content via creator API |
| 25 | pinterest ✅ | Pinterest Pins | Evergreen affiliate traffic pins (6-month half-life) |
| 26 | printful ✅ | Printful POD | T-shirts via Printful real REST API — second POD channel |
| 27 | printify ✅ | Printify POD | T-shirts via Printify API — different supplier network |
| 28 | ghost ✅ | Ghost CMS Publisher | Publish articles instantly (status=published) via Admin API |
| 29 | kdp ✅ | Amazon KDP Books | AI low-content books ready to upload — royalties up to 70% |
| 30 | referrals ✅ | Cashback Referrals | Guaranteed per-signup cash bonuses from referral programs |
| 31 | bmc ✅ | Buy Me a Coffee | Second tip-jar — creator/maker audience |
| 32 | substack ✅ | Substack Newsletter | 35M+ reader discovery feed — paid subscription support |
| 33 | appsumo ✅ | AppSumo Listing | Lifetime deal prep for Electra AI Center — $10K-$100K potential |
Heartbeat Agent
The Heartbeat Agent runs as a background service, executing persistent tasks on a schedule. Configure tasks via Electra and it runs autonomously — perfect for daily Finance Bot runs, system health checks, content publishing, and anything else that should happen on autopilot.
| Command | Description |
|---|---|
| /heartbeat start|stop|status | Control the heartbeat agent |
| /heartbeat logs | View agent activity log |
| /agent service install | Install as systemd user service (starts on login) |
| /agent service start|stop|restart | Control the systemd service |
| /task [cmd] | Manage heartbeat tasks |
/task add in your Telegram chat. Tasks are stored on the FastAPI server and fetched by the agent every 30 seconds. Results are automatically sent back to your Telegram chat.python3 heartbeat_agent.py add from the terminal. Tasks are stored locally at ~/.electra/tasks.db. Useful for machine-specific tasks like local shell commands and file monitoring./agent service status or say "show heartbeat agent status" — the router detects the intent and shows daemon status plus your live task list in one view.install the heartbeat agent service
show heartbeat agent status
restart the autonomous agent
check agent service logs
stop the background agent
install heartbeat
/task add Morning News | Search for today's top 5 technology headlines and summarize them in bullet points | daily 08:00
✅ Task "Morning News" created · Schedule: daily 08:00 · Results sent to this chat every morning.
/task add Uptime Check | Fetch https://makululinux.com and check if it returns HTTP 200. If it fails, send an urgent alert | every 1h
✅ Task "Uptime Check" created · Schedule: every 1h · You will only be notified if the site goes down.
/task add Bitcoin Price | Search for the current Bitcoin price and send it to me | every 6h
✅ Task "Bitcoin Price" created · Schedule: every 6h · BTC price sent 4× per day.
/task add System Report | Run: df -h / && free -h && uptime. Format the results as a clean system health summary | daily 09:00
✅ Task "System Report" created · Disk, RAM, and uptime sent to Telegram every morning at 9am.
/task add Error Watcher | Read /var/log/syslog (last 100 lines) and alert me if there are any ERROR or CRITICAL entries | every 30m
✅ Task "Error Watcher" created · Schedule: every 30m · Alerted within 30 minutes of any system error.
/task add AI Research | Search for the latest developments in AI agents published this week and write a 3-paragraph summary | once
✅ Task "AI Research" created · Schedule: once · Runs on the next tick, then disables itself automatically.
/task add Disk Alert | Run: df -h /. If disk usage is above 80%, send an urgent alert. Otherwise stay silent | every 6h
✅ Task "Disk Alert" created · Only notifies you when disk is getting full — silent otherwise.
/task add Evening Summary | Search for top world news today and give me a concise 5-point evening briefing | daily 20:00
✅ Task "Evening Summary" created · A daily digest arrives in Telegram every evening at 8pm.
ISO Agent
The ISO Agent provides tools for working with Linux ISO images — mounting, extracting, analyzing, and creating bootable images. Primarily used for MakuluLinux ISO development and testing.
build a backup ISO of my current system
→ ISO Agent: Parsing request... Building MakuluLinux-AI-OS.iso from live system
create an ISO called "MyStudio" but exclude my Downloads and Music folders
→ ISO Agent: Excluding ~/Downloads, ~/Music → building MyStudio.iso
make a clean bootable backup ISO
→ ISO Agent: Using standard exclude list → snapshot + squash + ISO generation
Full Command Reference
Type /? or /help in the terminal to see the full command list. Commands are grouped by category below.
Session & History
| Command | Description |
|---|---|
| /newchat | Start fresh chat (clears history + server memory) |
| /compact | Summarise history (saves compact report first) |
| /history export | Export conversation as clean markdown |
| /history diff | Compare two /compact reports |
| /snapshot [name] | Freeze entire session state to disk |
| /load | Reload the last saved session from disk |
| /remember [note] | Save note to .electra_memory.md |
| /status | Live dashboard: git, index, todos, context% |
| /context [n] | See exactly what the AI sees right now |
| /tokens | Show token count + estimated cost for current session |
| /cost | Estimated session cost by model/tokens |
| /summarise | Session digest — history untouched |
| /retry | Re-send your last prompt |
| /explain last | Explain the last AI tool actions in plain English |
Model & Config
| Command | Description |
|---|---|
| /model | Interactive model picker (numbered list, full details) |
| /saveconfig | Save current configuration immediately |
| /profile | User preferences (injected into every agent) |
| /snippet | Saved prompt snippets — reuse common prompts |
| /alias | Compound command aliases |
| /hotkeys | Single-key shortcuts (Tab completion built in) |
| /memory | Project memory (.electra_session.json) |
| /hooks | Plugin hook scripts (~/.electra/hooks/) |
| /cache [clear] | AI result cache (~/.electra/cache/) |
| /offline / /fallback | Install offline fallback model (Ollama + Gemma 4B) |
| /offline-memory | View local MemPalace memory status (ChromaDB/SQLite) |
| /reset [mode] | Reset one mode: coder command chat |
Notifications & Scheduling
| Command | Description |
|---|---|
| /notify [on|off] | Desktop notification when a task completes |
| /remind <t> <msg> | Timed in-session reminder |
| /schedule add <t> <msg> | Persistent cron-backed reminder (survives reboot) |
| /schedule list | Show all scheduled reminders |
| /schedule rm <n> | Remove a scheduled reminder |
Third-Party API Keys
| Command | Provider |
|---|---|
| /groq | Add/update Groq key — ultra-fast LLaMA/Mixtral inference |
| /perplexity / /pplx | Perplexity AI key — online search models |
| /together / /togetherai | Together AI key — 200+ open-source models |
| /cohere | Cohere key — Command R+ models |
| /deepseek | DeepSeek direct API key |
| /cerebras | Cerebras key — ultra-fast inference |
| /pollinations | Pollinations AI — free, no key required |
| /openrouter / /or | OpenRouter key — access 300+ models in one place |
Utility Commands
| Command | Description |
|---|---|
| /grep <pattern> [path] | Coloured search + AI explain option |
| /open [file] | Open last AI-written file with xdg-open |
| /share | Export current session as a shareable HTML file |
| /cls / /clear | Clear the terminal screen |
| /read mode | Multi-line input box (paste large text blocks) |
| /box | Multi-line input box for current mode |
| /ide / /terminator | Launch Terminator IDE (file tree + preview + chat panes) |
| /cmdide / /command-ide | Launch Command IDE in Terminator |
Changelog — Recent Releases
v2026.06.21-r5 — Coder Elite
- Live Code Map: AI knows exactly which files exist + when last touched
- Structured Error Parsing: FILE:LINE:TYPE extracted from tracebacks
- Intent-aware tool routing: DEBUG/REFACTOR/QUESTION use narrowest subset
- Next-Step Suggestions: 3 clickable actions after task complete (GUI)
- Code map badge in activity log shows tracked file count
- Workspace map reset on workspace change
v2026.06.21-r4 — Extension Quick Wins
- Tabstop navigation: Tab jumps $1→$2→$3, Esc exits
- TM_ variables: ${TM_FILENAME}, ${TM_FILENAME_BASE}, ${TM_DIRECTORY}, ${TM_SELECTED_TEXT}
- ✂ Snippets button in editor status bar (Coder mode)
- Ctrl+Shift+S opens snippet palette from editor
- Theme picker shows EXT THEMES section after extension install
v2026.06.21-r3 — Extension Activation (All 4 Layers)
- Layer 1 - Snippets: installed extension snippets load at startup; Tab expands triggers
- Layer 2 - AI awareness: installed extensions injected into every coder system prompt
- Layer 3 - Theme import: VS Code JSON themes parsed and added to Electra theme picker
- Layer 4 - LSP auto-reg: bundled LSP servers detected and registered with electra_lsp
v2026.06.21-r2 — Open VSX Extension Browser
- New 🧩 Extensions icon in sidebar activity bar
- Browse / search Open VSX Registry (open-vsx.org) in the GUI sidebar
- Install .vsix extensions — themes, grammars, snippets auto-applied
- TextMate grammars registered with GtkSourceView language-specs
v2026.06.21-r1 — Command Mode GUI
- Dynamic 3-pane layout for command mode: execution log pane auto-shows during tasks
- File preview pane shows when files are being edited
- Both collapse when tasks complete — full command-mode parity without the terminal
v2026.06.20 — GUI Theme Isolation & Tier Enforcement
- GUI fully isolated from system GTK theme (Breeze, Mint-Y, Arc, Yaru have zero influence)
- Three-layer isolation: forced Adwaita base + P800 reset provider + CSS_TEMPLATE universal reset
- Model picker tier enforcement in both GUI and terminal
- 🔒 [Major+] shown on ds-/bt-/ol- models for non-Major users; clicking shows upgrade toast
- Major/Commander users see paid providers sorted to the TOP of the picker
- AT-SPI screen context injected into Coder mode (was previously command + chat only)
- New tool
notify_userandtile_windowsadded to Coder mode
v2026.06.19 — Major/Commander Paid-Tier Priority
- Paid-provider pre-pass in auto-routing: ds-/bt-/ol- models tried first for Major/Commander
- Same pre-pass in context-aware coder model selection
- Cap safety: paid pre-pass requires full caps; relaxed to Co/T in pass 2
- 5 coder/command stability bugs fixed (kill path depth leak, checkpoint chunk injection, ban list in fallback queue)
v2026.06.18 — Ghost Text & Inline Edit Polish
- Ghost-text stale suggestion prevention via monotonic sequence counter
- Inline Edit (Ctrl+K) complete rewrite: modal popup, Apply/Cancel buttons, loading state, indent preservation
- File system tools (delete_file, move_file, create_directory, copy_file) all GUI-integrated: tree refresh, tab tracking, activity logging
- Agent Swarm: Orchestrator/Workers/Reviewer API URL fixes, worker upgraded to 8-round agentic loop
Earlier Highlights (June 2026)
- Agent Swarm (Major/Commander) — parallel multi-file editing with orchestrator + reviewer pipeline
- Open VSX extension browser with 4-layer activation system
- LSP integration: pyright, tsserver, rust-analyzer, clangd, gopls with 4 AI tools
- Ghost-text inline completions with dedicated fast-model chain and auto-fallback
- Command Palette (Ctrl+Shift+P), Quick File Open (Ctrl+P)
- @-mention file context in chat, Apply to File on every AI code block
- Git panel, Diagnostics tab, Minimap, image preview tabs, voice input, split editor
- Symbol breadcrumb, workspace session restore, collapsible thinking blocks
- Per-project stable conversation_id (server MemPalace memory across sessions)
- Project knowledge base (.electra_project.md / /pk commands)
- D-Bus daemon: two-way desktop ↔ Electra communication
- AT-SPI daemon: live screen text context for all modes
- Finance Center GUI (/finance), 33 income streams total
- Model routing rebuilt: step-3.5/3.7-flash as primary; Ollama Cloud (ol- prefix) added; SiliconFlow permanently removed from auto-routing
- Daily limits updated: Free 50 / Private 500 / Corporal 1500 / Sergeant 4000 / Major 10000 / Commander ∞
- Auto-report GitHub issue filing on unhandled errors
- SSL/TLS cert repair for Nuitka onefile binaries (auto-finds newest cacert.pem in /tmp/electra)
- Right-click context actions auto-installed on first launch in Nemo/Dolphin/Nautilus/Thunar/Caja/PCManFM
Launching Electra 🚀
Electra is pre-installed on MakuluLinux. You can launch it several ways:
# Standard terminal launch ai_terminal.bin # Launch directly into GUI mode ai_terminal.bin --gui # Launch and immediately chat ai_terminal.bin --chat "explain how SSH keys work" # Launch and immediately enter Coder mode with a task ai_terminal.bin --coder "add user authentication to my Flask app" # Launch and immediately write something ai_terminal.bin --writer "write a blog post about Linux gaming" # Launch and run a command via natural language ai_terminal.bin --command "show my disk usage" # Open a file for analysis (from Nemo right-click action) ai_terminal.bin /path/to/file.py # Show help ai_terminal.bin --help
On first launch, Electra creates its configuration directory at ~/.electra/ and populates it with default configuration files. All data is stored in your home directory — no system-wide writes.
Key Directories
| Path | Purpose |
|---|---|
| ~/.electra/ | Main config directory (profile, hotkeys, sessions, snapshots, personas) |
| ~/.config/ai_plugins/ | Community and custom plugins |
| ~/.config/ai_terminal/ | Service integrations config (Telegram, Google, Spotify, Discord, etc.) |
| ~/workspace/ | Default workspace for Coder and Writer modes |
| ~/.electra/templates/ | Prompt templates for repeated workflows |
| ~/.electra/sessions/ | Saved conversation sessions |
| ~/.electra/snapshots/ | File system snapshots for rollback |
| ~/.electra/personas/ | Custom AI personas |
First-Time Setup
When you first open Electra, it is ready to use in Chat mode immediately. To unlock the full power of integrations, set up each service you want to use:
- Google Workspace:
/google login - Home Assistant:
/ha setup - Spotify:
/spotify setup - Discord:
/discord setup - GitHub (personal):
/github connect - Telegram Bot:
/telegram setup(in terminal, then start the bridge) - Finance Bot:
/hustle setup— configure income streams, API keys, and payment accounts
Additional Directories
| Path | Purpose |
|---|---|
~/.electra/finance.db | Finance Bot SQLite database (earnings, pending actions, opportunities) |
~/.config/ai_terminal/finance.conf | Finance Bot credentials and configuration |
~/ElectraFinance/ | Generated content, designs, and digital products from the Finance Bot |
~/.config/electra_bar.json | Electra Bar appearance settings (colour, opacity, position, whisper model) |
💻 IDE Mode — Terminator Terminal IDE
IDE mode launches Electra inside a custom Terminator layout — a true terminal IDE for users who prefer the keyboard over a GUI. It provides a multi-pane workspace with a file tree, file preview, output log, and AI chat pane, all in one window.
/ide # Enter IDE from terminal session ai_terminal.bin --ide # Launch directly in IDE mode ai_terminal.bin --ide --cwd "%P" # Nemo action — opens IDE in selected folder sudo apt install terminator # Required dependency
IDE Layout
IDE Features
- Auto font detection — picks the best available monospace font: JetBrains Mono → Fira Code → Hack → Ubuntu Mono → Monospace
- Three Terminator profiles — default (tree/preview/chat), shell (teal cursor), info (dark status bar)
- Only right pane is interactive — tree, preview, and log panes have
stty -echo -icanonapplied - Session summary auto-display — when AI finishes a task, the preview pane automatically switches to show
.electra_session.md - Git branch in status bar — read directly from
.git/HEAD, no subprocess overhead - Keybindings — Ctrl+=/-, Tab, Ctrl+W, Ctrl+Z, F11, Ctrl+Shift+C/V
Install recommendations for best IDE experience
sudo apt install terminator ranger bat inotify-tools fonts-jetbrains-mono
pip3 install pygments # syntax highlighting fallback
🔌 Offline Mode & Local MemPalace
When internet connectivity is lost or all online models fail, Electra automatically switches to a local Ollama model. This fallback works in all modes — Chat, Coder, Writer, and Command — with full thinking display and a local conversation memory system that mirrors the server-side ChromaDB architecture.
Model Fallback Chain
Online models are tried in priority order before falling back to Ollama:
1. nvidia/nemotron-3-nano-30b-a3b # primary (fast router + chat) 2. stepfun-ai/step-3.5-flash # backup 1 3. electra # backup 2 (in-house) 4. microsoft/phi-4-multimodal-instruct # backup 3 5. microsoft/phi-4-mini-instruct # backup 4 6. Local Ollama model # ultimate offline fallback
Each online model is tried twice. If all fail, Ollama activates automatically — no configuration required.
Offline Setup
/offline # guided install from within Electra # or manually: curl -fsSL https://ollama.com/install.sh | sh ollama pull su_robin/gemma-4-E4B-it-Q4_K_M # 5.3 GB
Offline Mode by Mode
- Chat — full conversation with the local model; thinking displayed in cyan
- Coder / Writer — advisory mode; AI provides code/content you apply manually
- Command — full agentic loop; AI issues bash commands in
```bashblocks, Electra executes them, feeds output back, repeats up to 15 turns
Local MemPalace — Offline Conversation Memory
Electra runs an identical hybrid memory system locally for all Ollama calls, mirroring the server-side ChromaDB architecture:
/offline-memory # show backend, stored turn count, memory path /clear-offline-memory # wipe all local memories (requires YES confirmation) pip3 install chromadb # enable full semantic memory (SQLite is fallback)
Memory is stored at ~/.electra/chroma_local_db/ (ChromaDB) or ~/.electra/ollama_memory.db (SQLite). Each user gets a stable conversation ID derived from their home directory.
📟 Electra Bar — Desktop Widget
The Electra Bar (electra_bar.py) is a lightweight GTK3 floating widget that lives directly on your desktop — behind all application windows but always accessible. It provides instant access to Electra's full AI intelligence stack without opening a terminal window. Type a prompt, press Enter, and a terminal opens with the result. Or use the voice button to speak your request.
Since the MakuluLinux 2025 update, the Electra Bar has grown significantly. It now includes a microphone for voice input, a full command history with dropdown preview, drag-to-reposition, customisable appearance, and the new Quick Action Center — a full-screen panel of one-click AI shortcuts organised into six categories.
Bar Layout
┌────────────────────────────────────────────────────────────────────┐ │ ⠿ │ AI : Ask me anything… │ ⚡ │ 🎤 │ │ drag│ text input area │ QA │ mic │ └────────────────────────────────────────────────────────────────────┘ (1) (2) (3) (4) (1) Drag handle — click and drag to reposition the bar on screen (2) Text input — type any prompt; Enter to submit; Up/Down for history (3) ⚡ QA button — opens the Quick Action Center panel (4) 🎤 Mic button — voice input via faster-whisper (offline, multilingual)
Features
Text Input & History
- Type any prompt and press Enter — a gnome-terminal opens and Electra processes the request
- The input area auto-expands for multi-line text (up to 400 px)
- Press Up / Down arrows to cycle through the last 7 submitted commands
- A dropdown preview panel appears showing recent history entries
- History is persisted across sessions in
~/.config/electra_bar.json
Voice Input (Mic Button 🎤)
- Click the microphone to start recording — the button turns red (⏹) while active
- Uses faster-whisper for offline, accent-robust, multilingual transcription
- Falls back to Vosk if faster-whisper is not installed
- Live transcription appears in the input field as you speak
- Auto-submits 2.5 seconds after the last detected word (configurable)
- Click the button again to cancel recording before submission
- Whisper model size is configurable:
tiny|base|small|medium|large-v3(set in right-click settings)
Appearance Customisation (Right-Click)
Right-click anywhere on the bar to open the Settings popup:
| Setting | Description |
|---|---|
| Background Color | Choose from a 42-colour palette or pick any custom colour |
| Opacity | Slider from fully transparent to fully opaque |
| Bar Size | Set custom width and height in pixels |
| Whisper Model | Select the speech recognition model size (speed vs. accuracy) |
| Reset Defaults | Restore original colour, opacity, and re-centre the bar at the top of the screen |
Positioning
- The bar floats at the top-centre of the primary monitor by default
- Click and drag the drag handle (⠿) on the left to reposition anywhere on-screen
- Position is saved automatically and restored on next launch
- Right-click → Reset Defaults re-centres the bar if it gets lost
Autostart Setup
# Run manually python3 /usr/share/MakuluSetup/tools/electra_bar.py # Add to ~/.config/autostart/ (Cinnamon autostart) # Create: ~/.config/autostart/electra-bar.desktop [Desktop Entry] Type=Application Name=Electra Bar Exec=python3 /usr/share/MakuluSetup/tools/electra_bar.py Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true
Dependencies
# GTK3 + Cairo (usually pre-installed on MakuluLinux) sudo apt install python3-gi gir1.2-gtk-3.0 python3-cairo ffmpeg # Voice recognition (faster-whisper recommended) pip install faster-whisper pyaudio # Optional: Vosk fallback STT pip install vosk
Type in bar: turn on the bedroom light
→ Router detects HOME_ASSISTANT intent → opens terminal → controls the light → confirms
Type in bar: what's the weather today
→ Router detects WEATHER → fetches current weather → displays in terminal
Type in bar: play something relaxing on Spotify
→ Router detects SPOTIFY → starts playback → confirms track name
Click 🎤 and speak: "install VS Code"
→ Transcribed in real-time → auto-submitted → COMMAND mode installs VS Code
Click ⚡ QA button
→ Quick Action Center opens — full panel of one-click AI shortcuts
⚡ Quick Action Center
The Quick Action Center is a full-screen GTK3 panel that launches from the ⚡ button on the Electra Bar. It provides a beautifully organised grid of one-click AI action tiles, grouped into six categories. Each tile launches a new terminal with Electra pre-loaded with an optimised prompt for that specific task — no typing required.
Some tiles are simple launchers (click and go), while others are input cards with a text field so you can describe your specific need before launching.
Categories
Action Cards Reference
System Category
| Card | What It Does |
|---|---|
| Check Drivers | Scans and installs optimal drivers for GPU, CPU, and all connected devices |
| System Updates | Checks for and applies all available system and security updates; auto-handles errors |
| System Health | CPU temp, RAM usage, disk health (smartctl), journal error scan — full report |
| Disk Health | SMART diagnostics across all drives; bad sector and reallocated sector detection |
| Clean System | apt autoremove, apt clean, old kernel removal (keeps last 2), cache clearing |
| Fix Problems | dpkg --configure -a, apt --fix-broken, failed service restart, dmesg error scan |
| Optimize Performance | Tunes swappiness, I/O scheduler (SSD), disables unnecessary startup services |
| System Report | Full hardware inventory: CPU, RAM, GPU, storage, network, kernel, drivers, uptime |
Software Category
| Card | What It Does |
|---|---|
| Install Software / Games (input) | Describe what you want — AI finds and installs the best match (apt, snap, flatpak) |
| Remove Software (input) | Completely uninstalls apps including config files and orphaned dependencies |
| Update All Apps | Upgrades apt, snap, and flatpak packages to latest versions |
| List Installed Apps | Shows all manually installed applications grouped by category |
| Security Audit | Checks open ports, firewall status, SSH config, packages with known CVEs |
| Find & Install Font (input) | Searches and installs any font by name or style description |
Development Category
| Card | What It Does |
|---|---|
| Coder Mode | Launches Electra in Coder Mode in ~/Workspace |
| GUI IDE | Opens the VSCode-style GUI (file tree + editor + AI chat panel) |
| Terminal IDE | Opens the split-pane Terminal IDE with integrated AI |
| Writer Mode | Launches Electra in Writer Mode in ~/Workspace |
| Setup Git | Configures git name/email, generates SSH keys, connects to GitHub/GitLab |
| Setup Dev Environment (input) | Describe the tech stack — AI installs all tools and dependencies |
| Debug My Code (input) | Describe a bug or paste an error for AI-assisted diagnosis and fix |
| Create New Project (input) | AI scaffolds a complete project structure from a one-line description |
Network Category
| Card | What It Does |
|---|---|
| Network Status | All interfaces, IP addresses, connectivity test, DNS, default gateway |
| Speed Test | Runs speedtest-cli (installs if needed); shows download, upload, and ping |
| Firewall Check | UFW / iptables review, open port identification, security hardening suggestions |
| WiFi Diagnostics | Scans available networks, signal strength, connection quality, issue fixes |
| DNS & IP Info | Current DNS servers, Cloudflare vs. Google vs. ISP speed comparison, public IP |
| Fix Network Problem (input) | Describe any network issue — AI diagnoses and fixes it |
AI & Chat Category
| Card | What It Does |
|---|---|
| Quick Chat | Opens a fresh Chat Mode session in the terminal |
| Novel / Story Writer | Launches Writer Mode for long-form creative writing |
| Quick AI Command (input) | Describe any task — Electra executes it automatically via Command Mode |
| Explain Error (input) | Paste any error message or stack trace for instant AI diagnosis |
| Summarise Text (input) | AI summarises any text, article, document, or URL |
| Translate Text (input) | Translate to/from any language instantly |
Settings Category
| Card | What It Does |
|---|---|
| Language & Region | Shows and applies locale, timezone, currency, and keyboard layout settings |
| Display Settings | Resolution, refresh rate, multi-monitor setup and optimisation |
| Desktop Theme | Installs and applies Cinnamon themes, icon packs, and cursor themes |
| Keyboard & Mouse | Shortcuts, mouse speed, touchpad sensitivity configuration |
| User Accounts | Manages users, groups, sudo permissions, and passwords |
| Privacy & Security | Audits logging, telemetry, home directory permissions, and security concerns |
| Power Management | Configures sleep, hibernate, and battery optimisation (laptop/desktop aware) |
| Printers & Devices | Sets up printers, scanners, and external hardware via CUPS |
📧 Google Services Integration
Electra's Google agent (google_agent.py) provides deep integration with the entire Google Workspace ecosystem via OAuth2. You interact with all Google services using plain English — Electra's AI parsing layer extracts intent, looks up contacts, constructs API calls, shows you a preview, and acts on confirmation.
Setup (One-Time)
Follow these steps carefully — each one is required before Electra can access your Google account. This is a one-time setup; after the token is saved you never need to repeat it.
① Create a Google Cloud Project
- Open the Google Cloud Console and sign in with your Google account.
- Click the Project Dropdown at the top of the page (next to the Google Cloud logo).
- In the dialog that appears, click New Project (top-right corner).
- Enter a Project Name (e.g.
ElectraAI). Google auto-generates a Project ID — you can customise it now but it cannot be changed later. - Leave Location as "No organization" unless you're in a Google Workspace org.
- Click Create and wait a few seconds for the project to be provisioned.
② Create OAuth 2.0 Credentials
- Go to console.cloud.google.com/apis/credentials.
- Click Create Credentials → OAuth 2.0 Client ID.
- If prompted to configure the OAuth consent screen first, fill in the required fields (App name, support email) and save — you can leave everything else as defaults for personal use.
- For Application Type, choose Desktop app.
- Click Create. Copy the Client ID and Client Secret shown on screen.
- Click Download JSON and save the file as:
~/.config/ai_terminal/google_oauth.json
(create the directory if it doesn't exist:mkdir -p ~/.config/ai_terminal)
③ Enable Google APIs
Click each link below and press Enable on that API's page. All services must be enabled before the corresponding Electra commands will work.
④ Authenticate in Electra
- Open Electra and run:
/google login - Your browser will open Google's OAuth consent screen — sign in and click Allow.
- Electra captures the token automatically and saves it to
~/.config/ai_terminal/google_token.json. - You're done! All Google commands are now active. The token refreshes automatically — you won't need to log in again.
- → "send an email to Mike about the meeting"
- → "show my unread emails from today"
- → "search for emails about the invoice"
- → "reply to Sarah's last email"
- → /gmail inbox · /gmail search <q>
- → "what's on my calendar today"
- → "schedule a meeting with Alex at 2pm tomorrow"
- → "show my week ahead"
- → "create a Google Meet for the team standup"
- → /calendar today · /calendar week
- → "find the Q3 sales report on Drive"
- → "upload ~/documents/proposal.pdf to Drive"
- → "share the marketing folder with Sarah"
- → /drive list · /drive search <q>
- → "read my meeting notes doc"
- → "create a new doc called Project Brief"
- → "append these notes to my daily log doc"
- → /docs read <name> · /docs create <title>
- → "show the expenses sheet"
- → "update cell B5 in the budget sheet"
- → /sheets list · /sheets read <name>
- → "what's on my task list"
- → "add 'review PR #42' to my tasks"
- → "mark the invoice task as done"
- → /tasks list · /tasks add <task>
- → "find Mike's email address"
- → "show my recent contacts"
- → /contacts search <name>
- → "show my recent photos"
- → "show my Keep notes"
- → "create a Keep note: buy milk"
- → /photos · /keep list · /keep add <note>
🎵 Spotify Integration
Full Spotify playback control via the Spotify Web API — play, pause, skip, search, browse playlists, manage liked songs, and control volume — all with natural language or slash commands.
Setup
- Go to developer.spotify.com/dashboard → Create App
- Set Redirect URI to
http://localhost:8888/callback - Copy Client ID and Client Secret
- Run
/spotify setupin Electra - Config saved to
~/.config/ai_terminal/spotify_config.json
"what's playing on spotify"
"skip this track"
"pause spotify"
"play my Discover Weekly"
"turn up the volume"
"search for Daft Punk on spotify"
"play something chill"
"add this to my liked songs"
Spotify Commands
| Command | Description |
|---|---|
| /spotify | Show now playing |
| /spotify play | Resume playback |
| /spotify pause | Pause playback |
| /spotify skip | Skip to next track |
| /spotify prev | Previous track |
| /spotify volume <0-100> | Set volume |
| /spotify search <q> | Search tracks, artists, albums |
| /spotify playlists | List your playlists |
| /spotify play <name> | Play a playlist or artist by name |
| /spotify liked | Your liked songs (recent) |
| /spotify devices | List available playback devices |
| /spotify queue | Add current search result to queue |
💜 Discord Integration
The Discord agent (discord_agent.py) connects Electra to your Discord servers, allowing you to read channels, send messages, check notifications and DMs, and manage server interactions — all via natural language or slash commands.
Setup
- Go to discord.com/developers → New Application → Bot tab → Add Bot → Copy Token
- Enable "Message Content Intent" under Privileged Gateway Intents
- Invite the bot to your server with read/write permissions
- Run
/discord setupin Electra
Discord Commands
| Command | Description |
|---|---|
| /discord | Show guilds + unread summary |
| /discord setup | Run setup wizard |
| /discord servers | List your servers (guilds) |
| /discord channels | List channels in current server |
| /discord read #channel | Read recent messages from a channel |
| /discord send #ch <msg> | Send a message to a channel |
| /discord dms | Check DM channels |
| /discord notifications | Check mentions and notifications |
| /discord use <server> | Set active server |
🔺 Reddit Reader
The Reddit agent (reddit_agent.py) provides read access to Reddit using the public JSON API — no API key required. Browse subreddits, search posts, follow trending content, and optionally sign in for personalized features.
"what's trending on reddit"
"top posts on r/linux today"
"search reddit for python async tips"
"show me r/programming"
"what's hot on r/worldnews"
"show popular python subreddits"
Reddit Commands
| Command | Description |
|---|---|
| Hot posts from r/all | |
| /reddit r/<sub> | Posts from a specific subreddit |
| /reddit top r/<sub> | Top posts (all time) |
| /reddit new r/<sub> | Newest posts in a subreddit |
| /reddit search <q> | Search Reddit globally |
| /reddit search <q> r/<sub> | Search within a subreddit |
| /reddit subs <topic> | Find subreddits about a topic |
| /reddit saved | Your saved posts (requires login) |
| /reddit login | Sign in with Reddit account (optional) |
📰 RSS / News Feed Reader
The RSS agent (rss_agent.py) provides curated news from a hand-picked selection of quality tech, Linux, science, developer, and world news feeds — with no API key required. Add your own custom feeds from any URL.
Built-In Feed Categories
RSS Commands
| Command | Description |
|---|---|
| /rss | Top headlines across all default feeds |
| /rss tech | Tech news |
| /rss linux | Linux / open source news |
| /rss news | World news |
| /rss science | Science news |
| /rss dev | Developer news |
| /rss hn | Hacker News top stories |
| /rss bbc | BBC headlines |
| /rss add <url> [name] | Add a custom feed URL |
| /rss list | Show all feeds (built-in + custom) |
| /rss remove <name> | Remove a custom feed |
| /rss read <url> | Read any feed URL on the fly |
📋 Clipboard Intelligence Agent
The Clipboard Intelligence Agent runs silently in the background from the moment Electra starts. Every time you copy text — code, a URL, an error message, anything — it is silently stored in a rolling 20-item history. On demand, you can surface, explain, or interrogate any clipboard content without leaving the terminal.
Commands
| Command | Description |
|---|---|
/clip | Show the last 5 copied items with timestamps and previews |
/clip explain | AI explains the current clipboard content in plain English |
/clip explain question | Ask a specific question about the clipboard content |
/clip watch on|off | Enable or disable background clipboard tracking |
/clip clear | Clear the clipboard history for this session |
Example Usage
# Copy an error message from your browser, then: /clip explain # Ask a specific question about copied code: /clip explain what does this function do and are there any bugs? # View history: /clip # Turn off tracking when not needed: /clip watch off
Requirements
Requires xclip, xsel, or wl-paste (Wayland). Install with: sudo apt install xclip
📸 Screenshot Vision Agent
The Screenshot Vision Agent captures your screen and instantly sends it to a multimodal vision model for analysis. Ask what is on screen, get errors explained, understand unfamiliar UI, or query any visual content — all without leaving the terminal.
Commands
| Command | Description |
|---|---|
/screenshot | Capture screen and get a full AI description of everything visible |
/screenshot question | Capture screen and ask a specific question about it |
/screenshot last | Re-analyse the previous screenshot without taking a new one |
/screenshot last question | Re-analyse last screenshot with a new question |
Example Usage
/screenshot explain this error /screenshot what is this application doing? /screenshot last what is the stack trace saying? /screenshot is there any sensitive information visible?
Requirements
Install gnome-screenshot (recommended) or scrot: sudo apt install gnome-screenshot
🔍 OCR Agent — Image Text Extraction
The OCR Agent extracts text from any image file using Tesseract — the gold-standard open-source OCR engine. Photographs of documents, screenshots with text, scanned pages, code photos — all become editable, searchable text. Optionally pipe the result directly to AI for explanation or analysis.
Commands
| Command | Description |
|---|---|
/ocr image.png | Extract text from image file and display it |
/ocr image.png explain | Extract text then AI explains what it says |
/ocr image.png question | Extract text then AI answers your question about it |
/ocr last | OCR the last screenshot taken with /screenshot |
/ocr last explain | OCR last screenshot and AI explains the content |
Requirements
Install Tesseract: sudo apt install tesseract-ocr
For additional language support: sudo apt install tesseract-ocr-fra tesseract-ocr-deu etc.
🐳 Docker Management Agent
The Docker Agent brings full container management into your AI terminal. Fast-path commands handle the most common operations instantly; natural-language requests route through the command agent with a live Docker environment snapshot injected as context, so the AI always knows exactly what containers, images, and resources are present before acting.
Commands
| Command | Description |
|---|---|
/docker | Overview — running containers and resource stats |
/docker ps | All containers (running and stopped) |
/docker images | Local images list |
/docker stats | Real-time resource usage snapshot |
/docker logs name | Last 50 lines of container logs |
/docker logs name 100 | Last N lines of logs |
/docker start|stop|restart name | Control a container |
/docker rm name | Remove a container (asks for confirmation) |
/docker natural language | AI-managed complex operations (build, pull, compose, etc.) |
Example Usage
/docker /docker logs my-api-container /docker start postgres /docker what container is using the most memory? /docker build and run my Dockerfile in this directory /docker pull nginx and start it on port 8080
⚙️ Systemd Service Manager
The Service Manager puts full systemd control into natural language. Check what is failing, start and stop services, tail journal logs, and let AI write and install entire .service files from a plain-English description — no manual unit file editing required.
Commands
| Command | Description |
|---|---|
/service | List all failed units and active user services |
/service status name | Detailed status of a specific service |
/service start name | Start a service (user scope first, then system) |
/service stop name | Stop a service |
/service restart name | Restart a service |
/service enable name | Enable a service to start on boot |
/service disable name | Disable autostart |
/service logs name | Last 40 journal lines for the unit |
/service create description | AI writes and installs a new .service file |
AI Service Creation
# AI writes the .service file, installs it to ~/.config/systemd/user/,
# runs daemon-reload, enables, and starts it — all in one command:
/service create a service that runs my Flask app (~/projects/myapp/app.py) on port 5000
/service create run my Node.js API server from ~/api/ using npm start
/service create keep my Python scraper (~/scripts/scraper.py) running, restart on crash
📦 AI Package Manager Agent
The Package Manager Agent adds intelligent, context-aware package management to Electra. It automatically detects the correct package manager for your project (apt, pip3, npm, cargo, snap) and handles installation, removal, search, and updates — all from natural language.
Commands
| Command | Description |
|---|---|
/pkg install packages | Smart install — right manager for your project context |
/pkg remove packages | Smart uninstall |
/pkg search term | Search across apt, pip, and snap simultaneously |
/pkg update | Update all system packages (apt) and outdated pip packages |
/pkg natural language | Free-form request — AI determines what and how to install |
Example Usage
# In a Python project directory: /pkg install the dependencies from requirements.txt /pkg install flask sqlalchemy python-dotenv # In a Node.js directory (reads package.json automatically): /pkg install the missing dependencies for this project # System tools: /pkg install ffmpeg tesseract-ocr imagemagick /pkg search json parser for python /pkg update
Manager Selection Logic
The agent detects your project context and follows this priority:
- apt — system tools, C libraries, binary dependencies
- pip3 --user — Python packages (when
requirements.txtorpyproject.tomldetected) - npm — Node.js packages (when
package.jsondetected) - cargo — Rust crates (when
Cargo.tomldetected) - snap — GUI applications as fallback
⏰ Persistent Scheduler
Unlike /remind (which only works while Electra is running), the Persistent Scheduler writes real cron jobs that fire desktop notifications even when Electra is closed — across reboots. All jobs are managed through a simple JSON registry at ~/.electra/schedule.json.
Commands
| Command | Description |
|---|---|
/schedule list | Show all scheduled reminders with their cron expressions |
/schedule add time message | Add a persistent reminder |
/schedule rm n | Remove reminder by number |
/schedule clear | Remove all Electra-managed reminders |
Time Specification Examples
# Daily reminders /schedule add every day 9am Morning standup reminder /schedule add daily 18:00 End of day — commit your work # Weekly /schedule add every monday 8:30am Weekly planning session /schedule add every friday 5pm Weekly review # Weekdays only /schedule add every weekday 9am Daily check-in # Interval-based /schedule add every 2h Stretch break! /schedule add every 30m Drink some water # View and manage /schedule list /schedule rm 2
How It Works
Each /schedule add command parses the time specification, converts it to a standard 5-field cron expression, and installs it into your user crontab. The cron job fires a notify-send desktop notification using the system's DBUS session. Jobs survive reboots, app restarts, and Electra upgrades.
/remind 30m Do the thing — that fires only within the current Electra session. Use /schedule for anything that needs to repeat across sessions or reboots.
📱 QR Code Generator
Generate QR codes for any text, URL, WiFi credentials, contact cards, email addresses, or SMS messages — right from the terminal. The code is saved as a PNG to ~/Pictures/, opened instantly in your image viewer, and also rendered as block characters directly in the terminal so you can scan it immediately without switching windows.
Commands
| Command | Description |
|---|---|
/qr text or url | QR code for any text or URL |
/qr wifi SSID password | WiFi join QR (WPA2 by default) |
/qr wifi SSID password WEP | WiFi QR with WEP encryption |
/qr wifi SSID password nopass | Open network WiFi QR |
/qr contact Full Name phone | vCard QR — scan to add contact |
/qr email address | mailto QR code |
/qr sms number message | Pre-filled SMS QR code |
Example Usage
# Share a URL instantly /qr https://makululinux.com # Let guests join your WiFi — scan and connect /qr wifi HomeNetwork SuperSecret123 # Share contact details /qr contact Jane Doe +27821234567 # Any text at all /qr Meet me at the coffee shop at 3pm
Output
Each QR code is saved to ~/Pictures/electra_qr_YYYYMMDD_HHMMSS.png and opened automatically with xdg-open. For codes up to 33×33 modules, a block-character preview is also printed directly in the terminal — no window switch needed to scan it.
Requirements
The qrcode[pil] Python package. Electra installs it automatically on first use: pip3 install qrcode[pil] --user
🎙️ Voice I/O — Offline Speech-to-Text & Text-to-Speech
Electra AI Center ships with a complete, fully offline voice input and output system. You can speak to Electra using a microphone and have it speak back to you using a neural TTS voice — no cloud, no API keys, no privacy concerns.
The system uses faster-whisper (the same Whisper engine used in Electra Bar) for speech recognition, and edge-tts for high-quality Text-to-Speech output — the same voices used by Microsoft Edge's Read Aloud feature.
Voice Commands
/voice # Speak one message — Electra transcribes it and responds in text /talk # Continuous voice dialogue loop — speak > respond > speak again # Say "stop" or "exit" to end the conversation /speak # Toggle Text-to-Speech on/off. When on, Electra reads every response aloud /speak en-US-AriaNeural # Change TTS voice to a specific edge-tts voice /speak en-GB-SoniaNeural # British English female voice /speak en-AU-NatashaNeural # Australian English female voice
How the Voice Stack Works
/usr/share/MakuluSetup/tools/whisper. The model loads once per session and is reused across all /voice and /talk calls.Fallback 1: Google Speech Recognition (requires internet). Fallback 2: Vosk (fully offline, requires manual model download to
~/.vosk/model).mpg123 or ffplay. Toggle with /speak./talk command enters a persistent voice dialogue: Electra listens (with silence detection), transcribes, processes through the full routing pipeline, responds (optionally with TTS), then immediately listens again. Silence threshold: 1.8 seconds of sub-300 RMS audio after speech is detected.Installation
# Install faster-whisper and pyaudio (STT) pip3 install faster-whisper pyaudio --break-system-packages # Install edge-tts (TTS) pip3 install edge-tts --break-system-packages # Install mpg123 audio player (TTS playback) sudo apt install mpg123 # Optional: ALSA dev headers if pyaudio fails to compile sudo apt install portaudio19-dev python3-pyaudio
🎨 Media Retrieval — The Fetch vs. Generate Strategy
Electra AI Center uses a clever and often overlooked philosophy when it comes to media: fetch first, generate only if you must. This strategy drastically reduces latency, computational cost, and produces higher-quality results in most cases.
The reasoning is straightforward: almost every image, video, or piece of music you could ever want has already been created and is sitting on the internet, free to use under appropriate licences. It is often far faster and better to retrieve a high-quality existing asset from a reputable source than to generate a new one from scratch using a generative model — which requires significant compute, introduces quality variance, and takes time.
How It Works
gsettings / feh / nitrogen depending on your desktop environment.Why This Approach Is Superior
FETCH (from web) GENERATE (AI model)
─────────────────────────────────────────────────────────────────
Speed <2 seconds 5-30+ seconds
Quality Professional/consistent Variable (prompt-dependent)
Cost Free (API calls) Compute resources
Licensing Clear (CC, royalty-free) Depends on model/output
Availability Millions of assets Unlimited but unpredictable
Best for Real photos, real music, Unique art, specific prompts
professional imagery that don't exist yet
You: find me a video of waves crashing on a beach
Electra: → Searches Pixabay for "waves beach" → Downloads the highest-quality matching video → Opens in your video player. Done in under 3 seconds.
You: play some jazz music
Electra: → Queries Jamendo API for jazz genre → Picks a CC-licensed track → Streams/plays via mpg123. No generation wait time.
You: set a wallpaper of a forest at sunrise
Electra: → Searches Pexels for "forest sunrise" → Downloads the top 4K photo → Applies as desktop wallpaper via gsettings.
You: draw a cyberpunk cat with neon sunglasses
Electra: → This is a specific/unique request → Uses Pollinations AI generation → Returns a generated image. (Generate used only because no real photo could match this.)
🐳 Docker Agent — Natural Language Container Management
The Docker Agent gives you a complete natural language interface to Docker. Describe what you want to do with containers, images, volumes, or Docker Compose in plain English — Electra translates it to the correct Docker commands, explains what it's going to do, and executes with your confirmation.
What the Docker Agent Can Do
You: list my running containers
Electra: Runs docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}" and displays results in a readable table.
You: show docker logs for myapp and tail them
Electra: Runs docker logs -f myapp — shows live log tail. Press Ctrl+C to stop.
You: how much disk is docker using
Electra: Runs docker system df and explains the breakdown: images, containers, volumes, build cache.
You: remove all stopped containers and unused images
Electra: Shows the command: docker system prune. Warns about what will be deleted. Awaits confirmation before executing.
✈️ Travel Planner — AI-Powered Trip Planning
The Travel Planner activates automatically whenever you mention a trip, destination, flights, hotels, or an itinerary. It uses real-time web search combined with AI to build detailed travel plans with practical recommendations, cost estimates, and day-by-day itineraries.
What It Covers
You: I want to visit Bangkok for 5 days in October, budget around $1,200 total
Electra: Searches for current Bangkok travel info → Produces: 5-day day-by-day itinerary, estimated daily costs, best neighbourhoods to stay, visa requirements for your passport, October weather, and top flight booking tips.
You: plan a 10-day road trip from Cape Town to Kruger
Electra: Builds a detailed driving route, overnight stop recommendations, national park booking requirements, estimated fuel costs, and day-by-day highlights.
You: find flights to Paris in December, leaving from London
Electra: Searches current fare guidance, recommends best booking platforms (Skyscanner, Google Flights), explains typical fare patterns for the LHR→CDG route in December, and gives rail (Eurostar) alternatives.
🔧 Specialist System Agents
Electra includes three dedicated system management agents that handle the most complex and dangerous system operations: software installation, GPU driver management, and hardware fault diagnosis. Each agent operates with extra safety layers and step-by-step explanations.
📦 App Install Agent (APP_AGENT)
The App Install Agent handles all software package management — installation, removal, and repair — across all three major Linux package systems: apt (Debian/Ubuntu), snap, and flatpak. It also handles .deb files and can repair broken package states.
You: install VLC media player
Electra: Detects whether VLC is best installed via apt, snap, or flatpak → Runs sudo apt install vlc → Verifies installation → Reports success.
You: my Chrome is broken, fix it
Electra: Checks the package status → Runs sudo apt --fix-broken install → Attempts reinstall → Reports result and any remaining issues.
You: uninstall Spotify completely including all data
Electra: Identifies all Spotify packages and config files → Shows exactly what will be removed → Awaits confirmation → Purges package and cleans config.
🎮 NVIDIA GPU Agent (NVIDIA_AGENT)
The NVIDIA Agent is a specialist for the notoriously complex task of managing NVIDIA GPU drivers on Linux. It handles driver installation from scratch, updates, CUDA installation, and removal of competing drivers (like nouveau), with full awareness of the Linux GPU ecosystem.
You: install the NVIDIA drivers for my GPU
Electra: Detects your GPU model (lspci | grep NVIDIA) → Determines the best driver version → Blacklists nouveau → Adds the graphics-drivers PPA → Installs the driver → Schedules a reboot confirmation.
You: install CUDA for machine learning
Electra: Checks current driver version for CUDA compatibility → Downloads the correct CUDA toolkit → Installs and configures PATH variables → Verifies with nvcc --version.
You: my NVIDIA card isn't working after an update
Electra: Diagnoses the issue (nvidia-smi, journal logs, dkms status) → Identifies the conflict → Suggests targeted fix (reinstall DKMS module, downgrade kernel, etc.).
🔍 System Troubleshoot Agent (TROUBLESHOOT)
The Troubleshoot Agent activates when you report something is broken, not working, making noise, running slow, crashing, or behaving unexpectedly — and it's not an app install or NVIDIA driver issue. It follows a systematic diagnosis approach: gather information, identify the cause, propose the fix, and verify resolution.
You: my wifi keeps disconnecting every few minutes
Electra: Checks journalctl -u NetworkManager → Inspects power management settings → Checks driver version → Proposes fix (disable wifi power saving: sudo iw dev wlan0 set power_save off) → Verifies fix persists.
You: no sound after updating
Electra: Runs aplay -l, checks PulseAudio/PipeWire status, inspects alsamixer mute states → Identifies the broken module → Restarts audio server → Tests output.
You: my SSD is making a clicking noise
Electra: ⚠️ Issues immediate warning: SSDs don't click — this is a mechanical drive symptom → Runs smartctl -a /dev/sda → Reports health status → Strongly advises immediate backup if health is degraded.
🔧 Self-Repair System
Electra includes an autonomous self-repair system that detects agent failures, classifies the error type, attempts environment-level fixes (missing packages, permissions), forges a repair plugin that patches the gap, and files a GitHub issue — all silently in the background without interrupting the user.
Error Classification
| Class | Meaning | Auto-action |
|---|---|---|
| CAPABILITY_GAP | Feature the AI couldn't implement | Forges a repair plugin + files GitHub issue |
| ENVIRONMENT | Missing Python package, binary not found, permission denied | Attempts pip install or chmod; forges plugin if fails |
| LOGIC_ERROR | Bug in agent code | Forges patch plugin + files issue |
| TRANSIENT | Network timeout, rate limit, temporary failure | Logged only; no plugin forged |
Error Deduplication
Each error generates a fingerprint (hash of error type + agent name + message). If the same error has already been filed as a GitHub issue, a recurrence comment is added instead of creating a duplicate. A local ledger (~/.electra/repair_ledger.json) tracks all encountered errors and their GitHub issue URLs.
Viewing the Repair Ledger
/repairs # Show all errors encountered this session with status /repairs clear # Clear the repair ledger
🌍 Language Settings
Electra supports responding in a wide variety of languages. Once a language is set, all AI prose — explanations, chat replies, writer output, and novel generation — switches to that language. Technical tokens (command names, code, file paths, error labels) always remain in English regardless of the active language, ensuring your tooling stays consistent.
Language preference is saved to ~/.electra/config.json and automatically applied at every startup. On first launch, Electra attempts to detect your country from your IP address and suggests an appropriate language.
Setting Your Language
| Command | Description |
|---|---|
| /language | Show current language and available sub-commands |
| /language <name> | Set response language — e.g. /language Dutch, /language Japanese |
| /language English | Reset to English (the default) |
| /language detect | Auto-detect from your IP address and prompt you to confirm |
| /language list | Show all languages supported by the auto-detect map |
| /lang <name> | Short alias for /language |
Supported Languages
The auto-detect map covers the most common world languages. You can also type any language name directly — Electra will set it and instruct the model accordingly. Most frontier models handle the following languages well:
| Language | Language | Language | Language |
|---|---|---|---|
| Arabic | Bengali | Bulgarian | Chinese |
| Croatian | Czech | Danish | Dutch |
| Finnish | French | German | Greek |
| Hebrew | Hindi | Hungarian | Indonesian |
| Italian | Japanese | Korean | Malay |
| Norwegian | Persian | Polish | Portuguese |
| Romanian | Russian | Slovak | Spanish |
| Swedish | Thai | Turkish | Ukrainian |
| Urdu | Vietnamese | … and any other language you type in | |
/model.
What Stays in English
Even with a non-English language active, the following always remain in English to preserve usability:
- Slash command names and syntax
- Code, scripts, and terminal output
- File paths and directory names
- Error messages and technical labels
- Git commit messages and code comments
Examples
/language French
✅ Language set to French. Electra will now respond in French.
/language detect
🌍 Detecting location…
Detected: Vietnam → suggested language: Vietnamese
Set language to Vietnamese? (y/N): y
✅ Language set to Vietnamese
/language Swahili
✅ Language set to Swahili. Electra will now respond in Swahili.
Note: language support depends on the active model.
💡 Tips, Tricks & Best Practices
🚀 Getting the Best Results
Less effective: "fix the bug"
More effective: "the /api/users endpoint returns a 500 error when the email field is missing from the request body. Fix it and add a proper validation error response."
Specific bug descriptions let the AI locate the exact code, understand the expected behaviour, and write a targeted fix instead of guessing.
For any feature that touches multiple files or has uncertain architecture, use /plan mode instead of jumping straight to implementation. The Architect phase will catch design problems before any code is written.
Fill in your profile once and Electra injects it into every agent:
/profile language=Python /profile frameworks=FastAPI, SQLAlchemy, pytest /profile style=concise, no explanatory comments in code /profile conventions=always use type hints, snake_case everywhere /profile paths=~/projects/myapp is my main project
Every Coder and Writer session now automatically knows your preferences without you having to repeat them.
/hotkeys set s=/status /hotkeys set t=/think /hotkeys set n=/newchat /hotkeys set d=/diff all
Now just type s at any prompt to run /status, t to toggle thinking, etc.
Build up a task list throughout the day with /todo add, then use /todo work <n> to have the AI immediately start on any task. This is especially powerful in Coder mode for batching up multiple features and executing them one by one.
Always run /inspect before compiling a novel to EPUB/PDF. It flags short scenes, placeholders, and inconsistencies, giving you a chance to expand them before publishing.
Switch to a reasoning model (like nemotron-3-nano-reasoning or kimi-k2.6) for difficult debugging, algorithm design, or complex architecture problems. Enable /think to see the model's reasoning chain, which often reveals insights you can act on.
Keep the Electra Bar open on your desktop. Any quick AI task — "set a reminder", "what's the weather", "play jazz on Spotify", "what does this terminal error mean?" — can be handled without switching windows. The routing agent dispatches everything to the right mode automatically.
Use /diff all before /commit to page through every file the AI modified. This is your final quality gate — you might catch something the AI missed or spot a change you want to tweak manually before it goes into version control.
If you find yourself typing the same kind of prompt repeatedly — checking a specific API, formatting data a certain way, querying an internal system — write a plugin for it. Use /plugin write a plugin that [describes what you want] and Electra will write, save, and test the plugin for you in minutes.
⚠️ Common Pitfalls
/diff all first to review what changed.
"tell me" or "show" will steal routing from core modes. Keep triggers to distinctive phrases that clearly indicate intent for your specific plugin.
🔧 Personalisation Checklist
- ✅ Set your
/profilewith language, frameworks, and coding style - ✅ Configure
/hotkeysfor your most-used commands - ✅ Set up Google OAuth for email, calendar, and Drive access
- ✅ Connect Home Assistant if you have smart home devices
- ✅ Set up Spotify for music control from the terminal or Electra Bar
- ✅ Configure the Telegram bridge for remote access from your phone
- ✅ Install the Heartbeat Agent with
/agent service installfor autonomous background tasks - ✅ Add your first autonomous task from Telegram:
/task add Morning News | Summarise today's headlines | daily 08:00 - ✅ Add your favourite RSS feeds with
/rss add <url> - ✅ Connect your GitHub account with
/github connect - ✅ Browse community plugins with
/plugin community - ✅ Try
/guidefor the interactive built-in tutorial
🔌 Use Electra AI Anywhere — Public API Access
Your Electra AI account doesn't just power the desktop terminal — it also gives you a personal public API key you can use in any OpenAI-compatible third-party tool or editor. The same daily request limit you have inside Electra is shared across your desktop sessions and your API key usage, so there's no double-counting and no separate subscription needed.
This means you can use your Electra AI access in tools like VS Code, Cursor, Windsurf, Zed, Neovim, Open WebUI, AnythingLLM, or any other application that supports a custom OpenAI-compatible endpoint — all backed by the same pool of 80+ models available in Electra itself.
Visit makululinux.us, sign in with your Patreon account, and your API key is displayed on the dashboard. Copy it once — it never changes unless you regenerate it.
Endpoint Details
| Setting | Value |
|---|---|
| Base URL | https://makululinux.us:2006/v1 |
| Auth header | Authorization: Bearer YOUR_API_KEY |
| Compatibility | OpenAI-compatible — drop-in replacement for the OpenAI SDK or any compatible client |
| Tool calling | Enabled on /v1/chat/completions |
| Shared limits | Your daily limit is shared between the desktop app and API key — same pool, no double billing |
Quick Setup Examples
from openai import OpenAI client = OpenAI( base_url="https://makululinux.us:2006/v1", api_key="YOUR_API_KEY" ) response = client.chat.completions.create( model="stepfun-ai/step-3.5-flash", messages=[{"role": "user", "content": "Hello from VS Code!"}] ) print(response.choices[0].message.content)
{
"openai.apiKey": "YOUR_API_KEY",
"openai.baseURL": "https://makululinux.us:2006/v1"
}