[{"data":1,"prerenderedAt":123},["ShallowReactive",2],{"cats-page-en":3,"apps-cat-en-dev-tools":28},{"id":4,"extension":5,"items":6,"meta":25,"stem":26,"__hash__":27},"categories\u002Fen\u002Fcategories.yml","yml",[7,10,13,16,19,22],{"slug":8,"label":9},"dev-tools","Dev Tools",{"slug":11,"label":12},"ai","AI",{"slug":14,"label":15},"games","Games",{"slug":17,"label":18},"mobile","Mobile",{"slug":20,"label":21},"cli","CLI",{"slug":23,"label":24},"utilities","Utilities",{},"en\u002Fcategories","MvaEfwnqgassJcsI3pKwUkdu-xCj98IMS9cksTLQ_Cw",[29],{"id":30,"body":31,"category":8,"extension":5,"featured":107,"header":108,"meta":120,"slug":94,"stem":121,"__hash__":122},"apps\u002Fen\u002Fapps\u002Fprocess-manager.yml",[32,55,71,83,88,98],{"name":33,"type":34,"args":35},"Features","features",{"items":36},[37,40,43,46,49,52],{"title":38,"description":39},"Docker-compose style config","Define services in pm.yaml — command, environment, depends_on, working_dir, restart policy.",{"title":41,"description":42},"Interactive TUI","Navigate services, start\u002Fstop\u002Frestart individually or all at once. Keyboard-driven.",{"title":44,"description":45},"Daemon mode","pm up starts a background daemon. Services keep running after TUI exit.",{"title":47,"description":48},"Per-service logs","pm logs \u003Cservice> tails output. Add -f to follow.",{"title":50,"description":51},"Restart policies","no, on-failure, or always. Exponential backoff: 1s to 32s cap.",{"title":53,"description":54},"Hot reload","pm reload picks up config changes without restarting running services.",{"name":56,"type":57,"args":58},"Usage","code",{"commands":59},[60,61,62,63,64,65,66,67,68,69,70],"pm                  # launch TUI (default)","pm up               # start all services","pm up api db        # start named services","pm stop             # stop all","pm stop api         # stop named","pm restart          # restart all","pm status           # print status table","pm logs api         # tail logs","pm logs api -f      # follow logs","pm reload           # reload config","pm shutdown         # shut down daemon",{"name":72,"type":57,"args":73},"TUI keybindings",{"commands":74},[75,76,77,78,79,80,81,82],"↑\u002F↓ or k\u002Fj    Navigate services","s \u002F Enter      Start selected","x              Stop selected","r              Restart selected","a              Start all","z              Stop all","R (shift)      Reload config","q              Quit TUI (services keep running)",{"name":84,"type":85,"args":86},"Config example","markdown",{"content":87},"Create `pm.yaml` in your project root:\n\n```yaml\nservices:\n  web:\n    command: python3 -m http.server 8080\n    environment:\n      PYTHONUNBUFFERED: \"1\"\n    depends_on:\n      - logger\n    restart: on-failure\n\n  logger:\n    command: bash -c \"while true; do echo heartbeat; sleep 5; done\"\n```\n\nAll fields except `command` are optional. `working_dir` defaults to the config directory.\n",{"name":89,"type":90,"args":91},"Tags","tags",{"tags":92},[93,94,95,96,97,20],"rust","process-manager","docker-compose","tui","daemon",{"name":99,"type":100,"args":101},"Changelog","changelog",{"entries":102},[103],{"date":104,"version":105,"text":106},"2026-04-19","v0.1.0","Initial release — daemon, TUI, YAML config, restart policies, per-service logs",true,{"name":109,"tagline":110,"description":111,"platforms":112,"installCommand":114,"links":115,"requirements":118,"screenshot":119},"pm","Docker-compose-like process manager with TUI dashboard. Runs any command, not limited to Node\u002FBun.","YAML config, dependency ordering, restart policies, interactive TUI, daemon mode, per-service logs.",[113],"Linux","curl -fsSL appcrate.dev\u002Fpm | sh",{"github":116,"download":117},"https:\u002F\u002Fgithub.com\u002Folamedia\u002Fprocess-manager","https:\u002F\u002Fgithub.com\u002Folamedia\u002Fprocess-manager\u002Freleases","Rust binary. Linux x86_64. MIT License.","\u002Fscreenshots\u002Fprocess-manager.png",{},"en\u002Fapps\u002Fprocess-manager","5PMiIXgvwDc-grN7Zb_4RczLcgpYExOnBhEVu_m0sLE",1777756434156]