Personal AI coding agent CLI I wrote for my own daily work — REPL + tools + task planning. It is customized for my workflow, not a general-purpose product.
Monitor is an AI-assisted developer CLI with an interactive REPL, built-in commands, LLM-callable tools, macros, task planning, and an optional local HTTP server.
Monitor is built for repository-centric development with a mix of shell work, structured tools, and model assistance.
The repo has one production entry point and a smaller experimental stack.
- Production:
monitor/python -m monitor
This is the day-to-day CLI. Use it for real work. The full-screen UI (--tui) is experimental inside this same entry point. - Experimental:
monitor-oop/python -m monitor_oop
This is an alternate OOP architecture for design exploration. It is not the recommended path for daily use.
Keep production fixes in src/monitor/. Use src/monitor_oop/ only when you
intentionally want to try the alternate stack.
For runtime layout and deeper design notes, see
docs/ARCHITECTURE.md.
- Keep shell workflows and LLM-assisted development in one place
- Use structured tools for git, search, editing, tests, and planning
- Prefer deterministic edits before falling back to natural-language editing
- Scale from interactive REPL usage to scripts, agents, and a local server
(experimental full-screen TUI via
--tui)
- Interactive REPL for shell work and AI-assisted development
- Built-in commands for help, history, tasks, macros, model settings, and diagnostics
- LLM-callable tools for git inspection, search, file editing, tests, type checking, memory, and todo/task management
- Persistent and ephemeral macros
- Deterministic file editing tools with a natural-language fallback
- Optional local OpenAI-style HTTP server
- Experimental full-screen TUI mode (
--tui)
- Python 3.10+
- pip
- Some features also rely on external tools such as
git,ripgrep,redis,duckdbCLI,ffmpeg,graphviz,libmagic, andportaudio
git clone https://github.com/rdegraci/monitor
cd monitorpip install .pip install -e .
pip install -r requirements-dev.txt| Extra | Install | Provides |
|---|---|---|
voice |
pip install '.[voice]' |
Whisper STT + PyAudio |
tts |
pip install '.[tts]' |
Coqui TTS |
chroma |
pip install '.[chroma]' |
ChromaDB + chroma-db CLI |
science |
pip install '.[science]' |
pandas, scikit-learn, joblib, graphviz |
database |
pip install '.[database]' |
DuckDB Python package |
network |
pip install '.[network]' |
Tavily web search |
server |
pip install '.[server]' |
Flask HTTP API |
aws |
pip install '.[aws]' |
boto3 |
symbols |
pip install '.[symbols]' |
tree-sitter outlines/search |
all |
pip install '.[all]' |
Everything above |
Missing extras fail at feature use with an install hint rather than at REPL startup.
mkdir -p ~/.config/monitor
cp src/monitor/dot_env_example ~/.config/monitor/.env
$EDITOR ~/.config/monitor/.envExample:
OPENAI_API_KEY=...
ANTHROPIC_API_KEY=...
XAI_API_KEY=...Monitor also loads a project-local .env when present.
- Install Monitor.
- Add a provider API key to
~/.config/monitor/.envor a project.env. - Verify configuration:
python -m monitor --check-config- Start the CLI:
python -m monitor
# or: monitor- Ask for a coding task, for example:
Show git status and summarize changed files.
Use :help at any time to discover commands.
On first launch, Monitor seeds packaged defaults into the user config directory only when the target files do not already exist.
python -m monitor
python -m monitor --prompt "Summarize this repository"
python -m monitor --prompt-file prompts/review.txt
python -m monitor --script path/to/script.txt
python -m monitor --server
python -m monitor --agent
python -m monitor --tui # experimental:help
:tools
:tasks
:clear_tasks
:macros
:llm
:reasoning
:rg
:agent
:dump_metrics
Every :name built-in also works as /name.
Show visible macros:
macros
Add an ephemeral macro:
<proj=~/projects/monitor
cd {{proj}}
For persistent macros, use :edit_macros and :reload_macros.
Run shell output through the LLM pipeline:
llm< "git status"
llm< "git diff HEAD~1..HEAD" >llm "Review this diff: ${result}"
Use a directive file:
directive< greet.prompt Alice "Acme Corp"
Monitor can run a local HTTP server for OpenAI-style workflows:
python -m monitor --server
python -m monitor --server 127.0.0.1 --port 5000This server is intended for local development and single-user workflows. For
internal command behavior and security considerations, see
docs/INTERNAL_COMMANDS.md and
docs/ARCHITECTURE.md.
Monitor uses platform-specific config directories via appdirs.
Typical user config locations:
- Linux:
~/.config/monitor - macOS:
~/Library/Application Support/monitor - Windows:
%APPDATA%/monitor
Monitor resolves user config files first and falls back to site config where needed.
Project instruction resolution order:
AGENTS.md- otherwise
MONITOR.mdorbuild/MONITOR.md - otherwise packaged/appdir fallback
When AGENTS.md is present, project-local MONITOR.md and
MONITOR_CONVENTIONS.md are skipped.
Logging is configured from the logging section in config.yaml.
For more detail, see:
docs/GETTING_STARTED.mddocs/TROUBLESHOOTING.mddocs/STATUS_LINE.mddocs/BENCHMARK_USAGE.mddocs/ADD_BUILT_IN.mddocs/ADD_LLM_TOOL.mddocs/MACROS_README.mddocs/CORE_README.mddocs/ARCHITECTURE.md
Run the test suite:
pytestVerbose example:
PYTHONPATH=. pytest -vv --tb=long -o console_output_style=classicCoverage example:
PYTHONPATH=. pytest --cov=monitor --cov-report=term-missing --cov-report=htmlMonitor is distributed under the MIT License. See LICENSE.
Please use GitHub issues for bugs and feature requests.