A command line AI assistant that figures out why your computer is being weird
sysdoctor provides LLMs real-time system data from your machine:
- Runs a background daemon that continuously collects system metrics (CPU, memory, disk, processes)
- Maintains a history of system snapshots in
~/.sysdoctor/snapshots.jsonto track performance trends - Provides a chat interface that automatically includes current system state as context for every user question
- Daemon persists across chat sessions, so you always have fresh data ready
The goal is to get specific action items based on your machine's state rather than generic advice.
-
Install dependencies:
pip install -r requirements.txt -
Create a
.envfile in thesysdoctordirectory with either:OPENAI_API_KEY=your_api_key_hereor
ANTHROPIC_API_KEY=your_api_key_heresysdoctor will automatically use whichever API key is available. If both are present, OpenAI will be used.
# Start chat interface (auto-starts daemon if needed)
sysdoctor
# Check if daemon is running
sysdoctor --daemon-status
# Manually start daemon in background
sysdoctor --daemon
# Stop daemon
sysdoctor --stop-daemonsysdoctor- Make the script executable:
chmod +x sysdoctor.py
- Create a symlink to
/usr/local/bin:ln -sf "$PWD/sysdoctor.py" /usr/local/bin/sysdoctor - Now you can run
sysdoctorfrom anywhere in your terminal.
python sysdoctor.pyArguments:
--daemon: Start daemon in background and exit--stop-daemon: Stop running daemon and exit--daemon-status: Check if daemon is running and exit## Data Storage
sysdoctor stores data in ~/.sysdoctor/:
snapshots.json: System snapshots collected by daemondaemon.pid: Process ID of running daemon
sysdoctor logs to a log file called sysdoctor.log which gets created in the directory you run the sysdoctor command in.
Type your questions about system performance and sysdoctor will analyze current and recent system state to provide specific recommendations.
Type exit or quit to exit. You'll be asked whether to keep the daemon running for future sessions.
