The Watcher - An agentic system troubleshooting tool powered by Claude
Project description
Uatu
Your AI partner for system operations—from guided troubleshooting to autonomous problem-solving.
Core capabilities:
- Chat with your system: Ask questions and get AI-powered analysis
- One-shot investigations: Instant diagnosis for specific issues
- Autonomous monitoring: Learn baselines and detect anomalies
- Intelligent analysis: Connect CPU spikes, memory leaks, and process behavior
- Cost-efficient: Prompt caching and smart rate limiting
Tested on Platforms:
- macOS
- Linux
Installation
Using pipx (recommended)
# Install with pipx for isolated environment
pipx install uatu
# Configure API key
echo "ANTHROPIC_API_KEY=your_key" > .env
Using pip
# Install globally or in a virtual environment
pip install uatu
# Configure API key
echo "ANTHROPIC_API_KEY=your_key" > .env
From source with uv
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and install
git clone https://github.com/fractalops/uatu.git
cd uatu
uv sync
# Configure API key
echo "ANTHROPIC_API_KEY=your_key" > .env
Quick Start
Interactive Chat Mode (Default)
Start a conversational troubleshooting session:
# Default (read-only, requires approval for bash commands)
uv run uatu
# Allow bash commands with approval prompts
UATU_READ_ONLY=false uv run uatu
Ask questions naturally and get AI-powered analysis:
- "What's causing high CPU usage?"
- "Why is my server running slowly?"
- "Investigate recent memory issues"
- "Check for network bottlenecks"
Security: By default, bash commands require user approval. Set UATU_READ_ONLY=false in .env to enable bash (with approval prompts).
One-Shot Investigation
Investigate a specific symptom immediately:
uv run uatu investigate "server running slowly"
uv run uatu investigate "high CPU usage"
uv run uatu investigate "memory leak suspected"
The agent will:
- Gather relevant system information using bash commands
- Analyze patterns and correlate signals
- Provide root cause analysis
- Suggest actionable remediation steps
Best for: Quick diagnostics, automation, scripting
Continuous Monitoring
Watch your system and detect anomalies autonomously:
# Fast testing (1 minute baseline)
uv run uatu watch --baseline 1
# Production monitoring (5 minute baseline, default)
uv run uatu watch
# With AI investigation of detected anomalies
uv run uatu watch --investigate
Configuration
Create .env with options:
# Required
ANTHROPIC_API_KEY=your_key
# Optional
UATU_MODEL=claude-sonnet-4-5-20250929 # Claude model to use
UATU_READ_ONLY=true # Agent can only read, not modify system
UATU_REQUIRE_APPROVAL=true # Require approval for risky actions
Development
# Run tests (20 unit tests)
uv run pytest
# Lint
uv run ruff check .
# Format
uv run ruff format .
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Claude Agent SDK for Python for building the agent.
- Typer for the terminal UI
- Riche for formatting text in the terminal.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uatu-0.1.1.tar.gz.
File metadata
- Download URL: uatu-0.1.1.tar.gz
- Upload date:
- Size: 2.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46f63de80ab5279c6ee7edbbd955b2dd7d5eacfa1bf2e6dd36c51eb4acbdfed7
|
|
| MD5 |
2925232eb5952add857ca3464db04e8c
|
|
| BLAKE2b-256 |
5f8a7028483b81a45dd2668da6c3496ce954e8a33bc7f2af4326f03400702c32
|
Provenance
The following attestation bundles were made for uatu-0.1.1.tar.gz:
Publisher:
publish.yml on fractalops/uatu
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
uatu-0.1.1.tar.gz -
Subject digest:
46f63de80ab5279c6ee7edbbd955b2dd7d5eacfa1bf2e6dd36c51eb4acbdfed7 - Sigstore transparency entry: 701339569
- Sigstore integration time:
-
Permalink:
fractalops/uatu@93753d08d4e1c74a1369f91aad84cef87844ba3f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/fractalops
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@93753d08d4e1c74a1369f91aad84cef87844ba3f -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file uatu-0.1.1-py3-none-any.whl.
File metadata
- Download URL: uatu-0.1.1-py3-none-any.whl
- Upload date:
- Size: 55.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2e69c7262106e3050df06ccb663aaf5cce91b178f61444739095a83d36d691f
|
|
| MD5 |
83108ed7975c3076596000e95dfc90d6
|
|
| BLAKE2b-256 |
28827dc8773d3b3e84214947848be8f5997406efb6f32a8cad7854d5b40bd48b
|
Provenance
The following attestation bundles were made for uatu-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on fractalops/uatu
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
uatu-0.1.1-py3-none-any.whl -
Subject digest:
f2e69c7262106e3050df06ccb663aaf5cce91b178f61444739095a83d36d691f - Sigstore transparency entry: 701339572
- Sigstore integration time:
-
Permalink:
fractalops/uatu@93753d08d4e1c74a1369f91aad84cef87844ba3f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/fractalops
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@93753d08d4e1c74a1369f91aad84cef87844ba3f -
Trigger Event:
workflow_dispatch
-
Statement type: