Skip to content

aryan-agrawal-glean/devdock-plugins-library

DevDock Plugin Library

License

A collection of ready-to-use plugins for DevDock — covering all four supported languages and all 14 lifecycle hooks. Each plugin is self-contained, installable in one command, and designed to be readable enough to use as a starting point for your own plugin.

What is a DevDock plugin?

DevDock models environment startup as a state machine. At each state transition it fires named hooks — before_infra_ready, after_resource_start, after_ready, etc. Plugins are external processes (any language) that register for specific hooks and receive a JSON message over stdin when that hook fires.

devdock binary                     your plugin
      │                                │
      ├─ {"method":"initialize",        │
      │   "config":{...}} ────────────→│
      │   ←─────────────────────────── {"status":"ok"}
      │                                │
      ├─ {"method":"after_ready",       │
      │   "session_id":"...",           │
      │   "startup_duration_secs":8.3}─→│
      │   ←─────────────────────────── {"status":"ok"}
      │                                │
      ├─ {"method":"shutdown"} ────────→│
      │   ←─────────────────────────── {"status":"ok"}

That's the entire protocol. Your plugin reads lines from stdin, writes JSON to stdout, and exits cleanly on shutdown.

Plugins

Plugin Language Hooks What it does
announcer Python after_profile_loaded Prints a banner at the very start of startup — before Docker, before Tilt, before anything
startup-timer Rust all Records time spent in each lifecycle state, prints a summary at the end
env-validator Rust before_infra_ready Fails fast if required env vars are missing before anything starts
desktop-notifier Python after_ready, on_error Sends a native desktop notification (macOS + Linux)
discord-notifier Python after_ready, on_error Posts to a Discord webhook when the environment is ready or errored
startup-logger Python all Appends every lifecycle event to a log file — useful for debugging
webhook-notifier Go after_ready, on_error HTTP POST to any URL when the environment starts or fails
port-checker Go before_infra_ready Checks that required ports are free before Docker starts, exits clearly if not
startup-sound Bash after_ready Plays a sound when the environment is ready (macOS + Linux)
git-status-check Bash after_profile_loaded Warns if the workspace has uncommitted changes before startup

Hook coverage

Hook Plugins
after_profile_loaded announcer, startup-timer, startup-logger, git-status-check
before_infra_ready startup-timer, startup-logger, env-validator, port-checker
after_infra_ready startup-timer, startup-logger
before_config_generated startup-timer, startup-logger
after_config_generated startup-timer, startup-logger
before_tilt startup-timer, startup-logger
after_tilt startup-timer, startup-logger
before_resource_start startup-timer, startup-logger
after_resource_start startup-timer, startup-logger
after_ready startup-timer, startup-logger, desktop-notifier, discord-notifier, webhook-notifier, startup-sound
before_stop startup-timer, startup-logger
after_stop startup-timer, startup-logger
on_error startup-logger, desktop-notifier, discord-notifier, webhook-notifier
on_report startup-logger

Quick start

Pick any plugin and follow its README. The short version:

# 1. Install the plugin
cd plugins/bash/startup-sound
./install.sh

# 2. Register it in your devdock.toml
[plugins.hooks]
after_ready = ["devdock-plugin-startup-sound"]

# 3. Start DevDock
devdock start default

Writing your own plugin

See docs/protocol.md for the full spec and docs/hooks-reference.md for every hook's parameters.

If you use Claude Code, the /create-plugin skill scaffolds a new plugin interactively.

Contributing

New plugins welcome — see CONTRIBUTING.md.

License

MIT OR Apache-2.0

About

Plugins library for devdock

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors