Lumon is a personal AI assistant built with Python that provides a conversational interface with memory capabilities, task management, and web research functionality.
- Conversational Interface: Interact with Lumon through a natural language interface in your terminal
- Memory Management: Lumon remembers your preferences, identity, and past interactions
- Task Management: Create, track, and manage tasks, deadlines, and appointments
- Web Research: Search the web for information directly through the assistant
- Rich Text Output: Enhanced UI with markdown rendering in production mode
- Orchestration System: Uses a conductor-agent architecture to delegate specialized tasks
-
Clone the repository:
git clone https://github.com/yourusername/lumon.git cd lumon
-
Create and activate a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.env
file with your API keys:OPENAI_API_KEY=your_openai_api_key OPENROUTER_API_KEY=your_openrouter_api_key GEMINI_API_KEY=your_gemini_api_key ANONYMIZED_TELEMETRY=false CHROME_INSTANCE_PATH=your_chrome_instance_path (eg /Applications/Chromium.app/Contents/MacOS/Chromium)
Run Lumon in standard mode:
python main.py
Run Lumon in production mode with enhanced UI:
python main.py --prod
or
python main.py -p
main.py
: Entry point for the applicationchat/
: Contains the core chat functionalityorchestra.py
: Orchestrates the chat system and agent interactionsagents/
: Specialized agents for different tasksweb_research.py
: Agent for web search functionalitymemory_management.py
: Agent for managing user memoriestask_management.py
: Agent for managing tasks and appointments
tools/
: Tools used by the agentsmemory_tools.py
: Tools for memory operationstask_tools.py
: Tools for task managementdate_tool.py
: Tools for date handlingcalculation.py
: Tools for calculationsweather_tool.py
: Tools for weather information
config/
: Configuration filesprompts.yaml
: System prompts for the AI assistant
utils/
: Utility functions and helpersdata/
: Storage for application data
Lumon relies on several key libraries:
mainframe-orchestra
: For agent orchestrationlangchain
: For language model interactionsopenai
: For GPT model accessrich
: For enhanced terminal outputclick
: For command-line interfacepandas
: For data manipulationtiktoken
: For token counting
This project is licensed under the terms included in the LICENSE file.
Contributions are welcome! Please feel free to submit a Pull Request.