Install
A few ways to get quartobot on your machine, in roughly descending order of how often you’ll want each.
Recommended: uv tool install from PyPI
Don’t have uv yet? See the uv installation guide.
uv tool install quartobotFor unreleased main, install from git instead:
uv tool install git+https://github.com/seandavi/quartobotThis puts quartobot on your user PATH (typically ~/.local/bin or similar) so commands like quartobot init, scan, validate, and resolve work from any project directory without a venv activation dance.
uv manages the underlying Python and dependencies in an isolated environment behind the scenes. You don’t need to maintain a virtualenv yourself.
Pin a specific ref:
uv tool install git+https://github.com/seandavi/quartobot@<branch-or-tag-or-sha>Upgrade later:
uv tool upgrade quartobotUninstall:
uv tool uninstall quartobotIf you have pipx instead of uv
If pipx is already part of your Python workflow and you’d rather not take on the uv toolchain, pipx installs quartobot as a CLI on your user PATH the same way:
pipx install git+https://github.com/seandavi/quartobotThe trade-off: pipx doesn’t manage the underlying Python install, so Python ≥ 3.10 needs to be on the system already. quartobot init, scan, validate, and resolve then work the same as the uv tool install path.
One-shot: uvx
Run quartobot without installing it persistently. Useful for trying it out, scripted one-off jobs, or pinning a specific version in CI without polluting the host install.
uvx --from git+https://github.com/seandavi/quartobot quartobot --help
uvx --from git+https://github.com/seandavi/quartobot quartobot resolve --from-scan .The --from flag is required because the package name and the command name are the same. Without it, uvx would look for a PyPI package literally named quartobot.
pip install from PyPI
quartobot is on PyPI since v0.2.0, so the registry path works too:
pip install quartobotThe trade-off: pip install into a system Python isn’t recommended on modern Linux distros (you’ll likely hit PEP 668 “externally-managed-environment” errors). Use uv tool install quartobot instead, or pipx install quartobot, or install into a project venv with uv pip install quartobot.
For repo development
Clone and install editable:
git clone https://github.com/seandavi/quartobot.git
cd quartobot
uv pip install -e .For the full dev environment (lint, type-check, test):
uv sync --extra dev
uv run pytest
uv run ruff check src tests
uv run mypyRequirements
- Python ≥ 3.10.
uv tool installmanages this automatically. - Quarto ≥ 1.4 if you’re rendering documents. Install Quarto.
- No system manubot install needed.
quartobotdeclares manubot as a dependency;uv tool installbrings it along.
Verify Quarto can find it
The quartobot resolve pre-render hook in _quarto.yml runs as a subprocess of quarto render, which means quartobot has to be on the shell PATH Quarto sees — not just on the venv-activated PATH in your terminal. uv tool install puts it there; an editable install into a project venv does not.
quartobot --version
quartobot --help
quarto check
which quartobotIf quartobot --version works in your shell but quarto render fails with “command not found: quartobot”, the install directory (typically ~/.local/bin) isn’t on the shell PATH for the user Quarto runs as. For uv tool install, uv tool update-shell adds it; for pipx, pipx ensurepath does the same. A login reload then picks it up.