Open-source Arch Linux copilot for power users, maintainers, and people who want their desktop to do more than sit there.
J.A.R.V.I.S. is a local, plugin-based voice assistant tailored for Arch Linux environments. It brings together system automation, web research, persistent memory, safe plugin management, and voice-first control into a unified, modular ecosystem.
Designed as a practical Linux copilot rather than a generic chat toy, J.A.R.V.I.S. aims to streamline complex workflows and provide immediate access to system information and web resources directly from your desktop.
- System Automation & Monitoring: Instantly check system health, top processes, memory usage, and receive city-aware daily briefings.
- Integrated Research: Search the Arch Wiki, DuckDuckGo, Wikipedia, and IT news directly through voice or text commands.
- Persistent Memory: Remembers facts, preferences, and conversation history locally using SQLite.
- Screen Awareness: Detects screen-analysis requests and can capture and analyze your screen context when asked.
- Extensible Architecture: Safely install and load vetted plugins dynamically without modifying the core application.
- Feature Flags: Easily toggle optional capabilities on or off as needed.
-
Clone the repository:
git clone https://github.com/archpulse/jarvis.git cd jarvis -
Create a virtual environment and install dependencies:
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt -
Configure your environment:
mkdir -p ~/.jarvis/.ai cp .env.example ~/.jarvis/.ai/.env
-
Start the application:
python main.py
-
Setup: Follow the first-run wizard, input your Gemini API key, and click
INITto initialize the system.
You can customize J.A.R.V.I.S. behavior using feature flags and environment variables. For a full list of available options, including memory digest, system snapshot, and city briefing features, please see docs/configuration.md.
main.py: Core voice loop, UI, and assistant orchestration.setup_wizard.py: First-run setup and onboarding flow.plugins/: Directory for feature modules loaded at runtime.utils.py: Shared utility functions and helpers.jarvis_config.py: Environment configuration, defaults, and feature flags.docs/: Configuration and documentation.tests/: Unit test suite.
To run the local test suite:
python -m unittest discover -s testsWe welcome contributions! If you want to add a new plugin or feature, please ensure it is:
- Focused and small in scope
- Well documented
- Safe by default
- Testable without requiring the full GUI
Review our CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License. See the LICENSE file for details.
Created for people who actually use Linux.