Skip to content

Latest commit

Β 

History

History
123 lines (84 loc) Β· 2.99 KB

File metadata and controls

123 lines (84 loc) Β· 2.99 KB

πŸ’ Treehouse β€” Local Dev Orchestration for the Jungle

Welcome to Treehouse, a lightweight, language-agnostic CLI tool for orchestrating your local development services β€” whether you're swinging between microservices or just need a cozy place to launch a couple of dev servers.

Built by the crew at Simian Creative, Treehouse is where all your dev services can hang together in harmony.


🌴 Why Treehouse?

Local development often means starting multiple services, remembering which flags to pass, copy-pasting commands across terminals, and trying not to let anything fall out of sync.

Treehouse gives you:

  • 🧠 One config to define core and optional services
  • πŸ•Ή Simple CLI commands to start everything or just what you need
  • 🐾 Single Process Mode (SPM) for quick experimentation
  • 🌿 Interactive TUI for monitoring and controlling your services
  • 🐡 No monkey business β€” just clean, maintainable workflows

πŸ“¦ Installation

Coming soon as a binary and Go module. For now:

git clone https://github.com/simiancreative/treehouse.git
cd treehouse
go run main.go start

🌳 Configuration

# configs/treehouse.yaml
core_services:
  ui-server:
    command: "ui-server --env development"
    modes:
      with-auth: "ui-server --env with-auth"
    env:
      PORT: "3000"
    health_check:
      url: "http://localhost:3000/health"
      codes: [200]
      interval_seconds: 2
      timeout_seconds: 30
  spa-ui:
    command: "pnpm --filter spa-ui dev"
    health_check:
      url: "http://localhost:5173"
      codes: [200]
optional_services:
  oidc-server:
    command: "oidc-server --port 3000"
    health_check:
      url: "http://localhost:3000/health"
      codes: [200]
global_env:
  NODE_ENV: "development"
  DEBUG: "true"

No Procfiles. No magic. Just YAML.


🐡 Usage

Start your full tree:

treehouse start [--config-dir DIR] [--mode MODE] [--focus SERVICE] [--mute SERVICE]

Starts all core_services defined in the config with a full TUI interface.

Climb one branch (SPM):

treehouse spm SERVICE_NAME [--config-dir DIR] [--mode MODE]

Runs a single service without TUI, with health checks only for the specified service.

Compose your jungle:

treehouse compose [--config-dir DIR]

Launches an interactive TUI to select which services to start and their modes.


🍌 Philosophy

At Simian Creative, we believe that tools should get out of your way β€” not add more complexity. Treehouse is built to:

  • Keep things explicit and visible
  • Be flexible, not magical
  • Support real workflows, not toy demos

You don't need Kubernetes on your laptop. You just need a treehouse. πŸ›–


πŸ“£ Contributions

Have an idea? Want to add a feature? Found a bug? Open an issue or swing by with a PR.


πŸ“˜ License

MIT β€” Make something awesome.


Made with πŸ’ by Simian Creative