See Also:
- Local Development - First-time setup and directory structure
- Configuration Reference - All configuration options
This guide covers daily development workflows for making changes to Marcus code.
| Change Type | Action Required | Command |
|---|---|---|
| Python code changes | Restart Marcus | ./marcus stop && ./marcus start |
| Dependencies (requirements.txt) | Reinstall | pip install -r requirements.txt |
| Config file (config_marcus.json) | Restart Marcus | ./marcus stop && ./marcus start |
| Infrastructure (Planka/Postgres) | Recreate containers | docker compose up -d --force-recreate |
Marcus runs locally on your machine, not in Docker. Docker is only used for infrastructure (Planka + Postgres). This is because agents write to the local filesystem, and running Marcus in Docker would create path mismatches.
Docker: Planka + Postgres (infrastructure)
Local: Marcus + Cato + Agents (share the host filesystem)
When you modify Python files in src/:
# Restart Marcus
./marcus stop
./marcus startWhen you add/remove packages in requirements.txt:
pip install -r requirements.txt
./marcus stop
./marcus startWhen you edit config_marcus.json:
# Config is read at startup, just restart
./marcus stop
./marcus startWhen you need to reset Planka or Postgres:
# Restart infrastructure
docker compose restart
# Full reset (destroys data)
docker compose down -v
docker compose up -dpytest tests/
pytest tests/unit/ # Unit tests only
pytest tests/integration/ # Integration tests onlyblack src/ tests/
isort src/ tests/
mypy src/
pre-commit run --all-files# Marcus logs (timestamped files)
tail -f logs/marcus_*.log
# Planka/Postgres logs
docker compose logs -f planka
docker compose logs -f postgres# Stop and remove containers + volumes
docker compose down -v
# Start fresh
docker compose up -ddocker compose psMade a change?
|-- Python code only?
| --> Restart Marcus
|
|-- Added/removed packages?
| --> pip install, then restart Marcus
|
|-- Changed config file?
| --> Restart Marcus
|
|-- Changed docker-compose.yml?
| --> docker compose up -d --force-recreate
|
|-- Need fresh Planka data?
--> docker compose down -v && docker compose up -d
pytest tests/
pre-commit run --all-filesdocker image prune -a # Remove unused images
docker volume prune # Remove unused volumes- Update relevant docs
- Add tests
- Update CHANGELOG.md
For configuration changes, update Configuration Reference