Skip to main content

Runnem

Light-weight service manager for local project development. Makes switching between projects a breeze.

Why Runnem?

  • One command to rule them all – start, stop and inspect every service in your project without memorising half-a-dozen shell scripts.
  • Native speed & tooling – runs processes directly (no mandatory Docker), leveraging battle-tested GNU screen under the hood.
  • Port-safe project switching – makes it easy to switch between projects while avoiding port clashes.

Installation

pip install runnem   # Python ≥ 3.8 on Linux, macOS or WSL-enabled Windows

Quick start

# 1 · Create a config for the current directory
runnem init myproject            # omit the name to use the folder name

# 2 · Edit runnem.yaml and add your services
$EDITOR runnem.yaml

# 3 · Launch everything
runnem up                        # starts all services in the right order

# 4 · Check what’s running
runnem list                      # or: runnem ls

# 5 · Stop when you’re done
runnem down                      # stops every service cleanly

Tip: Need only one service? Pass its name to up or down, e.g. runnem up api.

Configuration example (runnem.yaml)

project_name: myproject  # required

services:
  database:
    command: cd database && docker-compose up
    url: postgresql://localhost:5432

  api:
    command: cd api && poetry run uvicorn main:app --reload --port 8000
    url: http://localhost:8000/health
    depends_on: [database]

  frontend:
    command: cd frontend && npm run dev
    url: http://localhost:3000
    depends_on: [api]
Key Required Description
command ✅ Shell command executed inside its own screen session.
url Health-check endpoint and source of the port number; Runnem waits for it to respond before starting dependants.
depends_on List of service names that must be running first.

Ports are inferred from the url – specify one if you want automatic conflict resolution.

Everyday commands

Task Command
Start all services runnem up
Start one service runnem up <service>
Stop all services runnem down
Stop one service runnem down <service>
Start service + logs runnem run <service>
Restart service + logs runnem rerun <service>
View live logs runnem log <service>
List status runnem list (or ls)
Free a busy port runnem kill <port>

Multiple projects

Runnem looks for the nearest runnem.yaml when you run a command.
If services from another project are still running you’ll see a warning and can stop them with:

runnem down     # executed from *any* project directory

Contributing

Found a bug, want a feature or to polish the docs? PRs are welcome!

  • Fork the repo & git clone it.
  • pip install -e . inside a virtualenv.
  • Create a feature branch (git switch -c my-fix).
  • Commit with clear messages and open a PR.

License

MIT © 2025 Runnem contributors

Release files for runnem 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for runnem 0.1.4
File Size Uploaded
runnem-0.1.4.tar.gz 18.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for runnem 0.1.4
File Interpreter ABI Platform
runnem-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 30.2 kB

Release files / runnem-0.1.4.tar.gz

Download URL runnem-0.1.4.tar.gz
Size 18.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9864b714f3b802acf56fe28d130d0b8fa8320b8437af552e850f7c7f034155bd
BLAKE2b-256 checksum
How to use checksums
72063cf6e8f9013a139ee508c66427316ec11a39fdc91c94fd0a6a933f843d42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.4

Release files / runnem-0.1.4-py3-none-any.whl

Download URL runnem-0.1.4-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
418eef083b4aac0c0291d3846592610f9edc5178ef0516ad6629394ed76243dc
BLAKE2b-256 checksum
How to use checksums
6c34e1de3d7f72067953f2e5e711179975073e7bd690b868787386fc397c713e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page