An intelligent AI assistant that understands voice commands and autonomously controls your computer through natural language interaction.
Features β’ Architecture β’ Installation β’ Usage β’ Documentation β’ Contributing
- Overview
- Features
- Architecture
- Technology Stack
- Installation
- Configuration
- Usage
- Project Structure
- Agents
- Services
- Development
- Testing
- Documentation
- Roadmap
- Contributing
- License
- Acknowledgments
Arcelix AI is a sophisticated computer use agent that leverages cutting-edge AI technologies to provide seamless computer automation through voice and text commands. Built with a modular multi-agent architecture, Arcelix can understand complex user intentions, plan execution strategies, and interact with your operating system to accomplish tasks autonomously.
- π― Natural Interaction: Communicate with your computer using natural language
- π§ Intelligent Planning: Multi-agent system that understands context and plans complex tasks
- π Secure: Built-in credential management with encryption
- π¨ Modern UI: Beautiful PyQt6 interface with dark/light theme support
- π Extensible: Modular architecture for easy feature additions
- π Web Automation: Automated browser interactions for web-based tasks
- π€ Voice Control: Wake-word activation ("Hey CC") using Porcupine, powered by OpenAI Whisper for speech recognition
- π¬ Natural Language Understanding: Powered by Google Gemini 1.5 Flash for intent recognition and context understanding
- π€ Multi-Agent System: Specialized agents for perception, NLU, planning, and action execution
- π₯οΈ OS Automation: Complete system control via PyAutoGUI and OS-specific APIs
- π Web Automation: Selenium-based browser automation for web tasks
- π Credential Management: Secure storage with master password and encryption
- βΏ Accessibility: Screen reader support and accessibility service integration
- π¨ Customizable UI: Dark and light themes with responsive design
- π Real-time Status: Live feedback and execution status display
- Vision Capabilities: Screen understanding and visual context awareness
- Clipboard Integration: Smart clipboard operations
- Context Preservation: Maintains execution context across tasks
- Error Handling: Robust error recovery and user feedback
- Background Processing: Non-blocking task execution
- Extensible Architecture: Easy to add new capabilities and services
Arcelix follows a layered, multi-agent architecture that separates concerns and enables scalability:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β User Interface (PyQt6) β
β ββββββββββββ ββββββββββββ ββββββββββββ βββββββββββ β
β β Command β β Status β β Settings β β Themes β β
β β Input β β Display β β Dialog β β Manager β β
β ββββββββββββ ββββββββββββ ββββββββββββ βββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Main Orchestrator (Coordinator) β
β - Command Processing - Agent Coordination β
β - Execution Planning - State Management β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Agent Layer β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β NLU β β Planning β β Action β βPerceptionβ β
β β Agent β β Agent β β Agent β β Agent β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Service Layer β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Gemini β β Voice β β OS β β Web β β
β β Service β β Service β βInteractionβ βAutomationβ β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β β TTS β β Whisper β β Cred. β β
β β Service β β Service β β Manager β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Perception Agent: Captures user input (voice/text) and system state
- NLU Agent: Understands user intent and extracts parameters
- Planning Agent: Creates step-by-step execution plans
- Action Agent: Executes planned actions on the system
| Component | Technology | Purpose |
|---|---|---|
| AI/LLM | Google Gemini 1.5 Flash | Natural language understanding, planning, vision |
| UI Framework | PyQt6 | Modern cross-platform desktop interface |
| Speech-to-Text | OpenAI Whisper | Local speech recognition |
| Text-to-Speech | Tortoise TTS | High-quality voice synthesis |
| Wake Word | Porcupine | "Hey CC" detection |
| OS Automation | PyAutoGUI | Mouse/keyboard control |
| Web Automation | Selenium | Browser automation |
| Security | Cryptography | Credential encryption |
PyQt6 # UI Framework
openai-whisper # Speech recognition
tortoise-tts # Text-to-speech
google-generativeai # Gemini API
pyautogui # OS automation
pyperclip # Clipboard operations
selenium # Web automation
python-dotenv # Environment configuration
requests # HTTP client
cryptography # Secure credential storage
- Python 3.10 or higher
- Operating System: Windows (primary), macOS/Linux (experimental)
- Microphone (for voice features)
- Internet connection (for Gemini API)
git clone https://github.com/SatyamSingh-Git/CC_computer_use_agent.git
cd CC_computer_use_agent# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtThe Porcupine wake word model is included in assets/porcupine_models/. Ensure the file Hey-cc_en_windows_v3_0_0.ppn exists.
-
Copy the template configuration:
copy config\api_keys_tempelate.json config\api_keys.json
-
Edit
config/api_keys.jsonwith your credentials:{ "gemini_api_key": "YOUR_GEMINI_API_KEY_HERE" } -
Get a Gemini API key from Google AI Studio
Edit config/user_settings.json to customize Arcelix:
{
"theme": "dark",
"voice_enabled": true,
"wake_word_enabled": true,
"tts_enabled": true,
"log_level": "INFO"
}See config/default_settings.json for all available configuration options.
Logs are stored in the logs/ directory. Configure logging level in config/user_settings.json or via the UI settings dialog.
# Make sure virtual environment is activated
python main.py- Wake Word Activation: Say "Hey CC" to activate voice listening
- Give Commands: Speak your command naturally
- Examples:
- "Open Chrome and search for Python tutorials"
- "Create a new folder called Projects on my desktop"
- "Send an email to john@example.com"
- "Take a screenshot and save it"
- Type your command in the input bar at the bottom of the window
- Press Enter or click the Send button
- Watch the status display for execution updates
- Click the Stop button in the UI
- The current execution will be interrupted safely
On first run:
- Arcelix will prompt you to create a master password
- This password encrypts all stored credentials
- Service credentials (e.g., email, web accounts) can be saved securely
CC_computer_use_agent/
β
βββ main.py # Application entry point
βββ requirements.txt # Python dependencies
βββ setup.py # Package setup configuration
β
βββ aura_core/ # Core backend logic
β βββ main_orchestrator.py # Main coordination logic
β βββ agents/ # Specialized agent modules
β β βββ perception_agent.py # User input & system state
β β βββ nlu_agent.py # Natural language understanding
β β βββ planning_agent.py # Task planning
β β βββ action_agent.py # Action execution
β βββ services/ # External service wrappers
β β βββ gemini_service.py # Gemini API integration
β β βββ voice_service.py # Voice input handling
β β βββ whisper_services.py # Speech-to-text
β β βββ tts_services.py # Text-to-speech
β β βββ os_interaction_service.py # OS automation
β β βββ web_automation_services.py # Browser control
β β βββ credential_manager.py # Secure credential storage
β β βββ accessibility_service.py # Accessibility features
β βββ utils/ # Utility functions
β βββ logger_config.py # Logging setup
β βββ helpers.py # Helper functions
β βββ exceptions.py # Custom exceptions
β
βββ aura_ui/ # User interface
β βββ main_window.py # Main application window
β βββ widgets/ # UI components
β β βββ command_input_bar.py
β β βββ status_display.py
β β βββ settings_dialogue.py
β β βββ credential_prompt_dialog.py
β β βββ notification_widget.py
β β βββ stop_button.py
β βββ themes/ # UI themes
β β βββ dark_theme.qss # Dark theme stylesheet
β β βββ light_theme.py # Light theme
β β βββ theme_manager.py # Theme management
β βββ utils_ui/ # UI utilities
β βββ ui_helpers.py
β
βββ config/ # Configuration files
β βββ constants.py # Application constants
β βββ default_settings.json # Default configuration
β βββ user_settings.json # User preferences
β βββ api_keys_tempelate.json # API key template
β
βββ assets/ # Static resources
β βββ fonts/ # Custom fonts
β βββ icons/ # Application icons
β βββ sounds/ # Sound effects
β βββ porcupine_models/ # Wake word models
β βββ Hey-cc_en_windows_v3_0_0.ppn
β
βββ tests/ # Test suite
β βββ test_core/ # Core logic tests
β βββ test_ui/ # UI tests
β βββ test_integration/ # Integration tests
β
βββ docs/ # Documentation
β βββ README.md # This file
β βββ architecture.md # Architecture details
β βββ api_referance.md # API documentation
β βββ Dev_plan.md # Development roadmap
β βββ structure.md # Project structure
β
βββ logs/ # Application logs
Responsibility: Capture and preprocess user input and system state
- Receives voice/text commands
- Captures screen context when needed
- Provides system state information
- Integrates with voice service and accessibility APIs
Responsibility: Understand user intent and extract parameters
- Powered by Google Gemini 1.5 Flash
- Identifies command intent (e.g., "open_application", "web_search")
- Extracts entities and parameters
- Handles ambiguity and context
Responsibility: Create execution plans from understood intent
- Generates step-by-step action plans
- Considers system constraints
- Handles complex multi-step tasks
- Optimizes execution order
Responsibility: Execute planned actions on the system
- OS-level operations (mouse, keyboard, applications)
- Web automation (browser control)
- File system operations
- Application interactions
Wrapper for Google Gemini 1.5 Flash API
- Text generation and understanding
- Vision capabilities for screen analysis
- Streaming responses for real-time feedback
Wake word detection and voice input management
- Porcupine wake word engine ("Hey CC")
- Audio capture and preprocessing
- Integration with Whisper service
OpenAI Whisper-based speech recognition
- Local, privacy-focused speech-to-text
- Multiple model sizes supported
- Fast inference on CPU/GPU
Tortoise TTS for natural voice synthesis
- High-quality voice generation
- Customizable voice parameters
- Async generation for responsiveness
System-level automation
- Mouse and keyboard control (PyAutoGUI)
- Window management
- Application launching
- Clipboard operations
Browser automation with Selenium
- Navigate websites
- Fill forms
- Click elements
- Extract data
Secure credential storage
- Master password protection
- Encrypted storage (Fernet encryption)
- Service-specific credentials
- Secure credential retrieval for automation
System accessibility features
- Screen reader integration
- UI element detection
- Accessibility tree navigation
-
Install development dependencies:
pip install -r requirements.txt pip install pytest pytest-qt black flake8
-
Configure your IDE (VS Code recommended):
- Install Python extension
- Configure linting (flake8)
- Set up formatting (black)
- Follow PEP 8 guidelines
- Use Black for code formatting
- Maximum line length: 120 characters
- Use type hints where applicable
# Enable debug logging
python main.py --debug
# Or set in user_settings.json
{
"log_level": "DEBUG"
}- Create a new branch:
git checkout -b feature/your-feature-name - Implement your feature following the modular architecture
- Add tests for new functionality
- Update documentation
- Submit a pull request
# Run all tests
pytest
# Run specific test module
pytest tests/test_core/test_nlu_agent.py
# Run with coverage
pytest --cov=aura_core --cov=aura_uitests/test_core/: Unit tests for agents and servicestests/test_ui/: UI component teststests/test_integration/: End-to-end integration tests
Use pytest fixtures and follow the existing test patterns:
import pytest
from aura_core.agents.nlu_agent import NLUAgent
def test_nlu_intent_recognition():
agent = NLUAgent(gemini_service)
result = agent.process("open Chrome")
assert result['intent'] == 'open_application'
assert 'chrome' in result['parameters']['app_name'].lower()- Architecture Documentation: Detailed system architecture
- API Reference: API documentation
- Development Plan: Roadmap and development phases
- Project Structure: Detailed structure explanation
For detailed API documentation, see api_referance.md.
See CONTRIBUTING.md for contribution guidelines.
- Core multi-agent architecture
- Voice input with wake word
- Basic OS automation
- Web automation capabilities
- Secure credential management
- PyQt6 modern UI
- Enhanced error recovery
- Plugin system
- Cloud sync for settings
- Comprehensive test coverage (80%+)
- Performance optimizations
- Better error messages
- Enhanced logging and debugging
- Multi-language support
- Custom voice training
- Workflow automation builder
- Integration with popular apps (Slack, Email, Calendar)
- Learning from user patterns
- Proactive suggestions
- Context-aware task prediction
- Improved vision capabilities
- Plugin marketplace
- Community-contributed agents
- Cloud service integration
- Mobile companion app
We welcome contributions from the community! Here's how you can help:
- π Report bugs: Open an issue with detailed reproduction steps
- π‘ Suggest features: Share your ideas in the discussions
- π Improve documentation: Help make docs clearer and more comprehensive
- π§ Submit pull requests: Fix bugs or implement new features
- π§ͺ Write tests: Improve test coverage
- π¨ Design: Contribute UI/UX improvements
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please be respectful and constructive in all interactions. We're building this together!
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Satyam Singh
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Google Gemini: For powerful AI capabilities
- OpenAI Whisper: For accurate speech recognition
- PyQt6: For the robust UI framework
- Porcupine: For wake word detection
- Tortoise TTS: For natural voice synthesis
This project draws inspiration from:
- Anthropic's Computer Use Agent
- Open source AI assistants
- The vision of truly conversational computing
Thanks to all contributors and the open-source community for making this possible!
- Author: Satyam Singh
- GitHub: @SatyamSingh-Git
- Repository: CC_computer_use_agent
- Issues: GitHub Issues
- π Check the documentation
- π Report bugs via GitHub Issues
- π¬ Join discussions in the Discussions section
- π§ For security issues, please email directly (see GitHub profile)
