Skip to content

Updating

Upgrading angelo has two parts: getting newer package code, and reconciling each project's managed config (rules, hooks, skills, mcp.json). How much angelo update does for you depends on how angelo is installed:

  • Normal (copied) install: angelo update does both — it upgrades the package from git when a newer version exists, then reconciles this project's config against the new version. One command.
  • Editable / dev checkout: angelo update reconciles config but never touches the package — pip-upgrading would silently replace your editable install with a copy. You get the newer code yourself with git pull.

Pass --no-upgrade to skip the package step and only reconcile config.

1. Get the newer package

angelo update (step 2) handles this for you: it runs pip install --upgrade from git when a newer version is published, then re-runs itself to reconcile config against the freshly installed version. To do just the package step:

angelo kill          # stop running servers first; they lock console scripts
pip install --upgrade "git+https://github.com/natashahirt/angelo"

angelo update will not upgrade an editable install — do it yourself:

angelo kill          # running servers lock the console scripts
git pull
# only when dependencies or entry points changed:
pip install -e ".[zettelkasten,dashboard]"

Never pip install --upgrade git+... on an editable install

On an editable checkout it silently replaces your editable install with a copy, and your local edits stop taking effect. Use git pull instead, and only re-run pip install -e ".[...]" when deps or entry points change — after angelo kill.

2. Reconcile each project

In every project that uses angelo:

cd /path/to/your/repo
angelo update                 # normal install: also upgrades the package if newer
# angelo update --no-upgrade  # only reconcile config; leave the package alone

angelo update refreshes the managed rules/hooks/skills and reconciles mcp.json to match the installed version. On a normal install it first upgrades the package (unless --no-upgrade); on an editable checkout it prints guidance and leaves the package to you. If you've edited a managed file, it won't be silently overwritten — it writes a <file>.new beside it (or, for Cursor rules, offers to migrate your edits into a <name>-local.mdc). Reconcile those manually.

3. Restart

Restart Cursor (or the MCP servers in Settings → MCP) so the new server code and config load.

What angelo update does not touch

.cursor/agents.yaml is not a managed file, so angelo update never changes it. Keep project-specific coordinator prose — and top-level rigor / max_extensions defaults — in agents.yaml or an un-managed rule like .cursor/rules/coordinator-local.mdc, and it survives every update.

For the full command reference, see .cursor/rules/operations.mdc.

Semantically related entries from the memory graph.