Extensions / smart-project-autostart
Smart Project Autostart
Infers how to start and stop an unfamiliar repo and runs it with one click.
Smart Project Autostart
Infers how to start and stop an unfamiliar repo and runs it with one click — npm/pnpm/yarn scripts, Docker Compose, Procfile, Python, and Makefile targets.
What it does (v0.2.0)
Open a workspace, then use the Smart Project Autostart sidebar (or the command palette):
- Scan & Generate Plan fingerprints the repo — Compose services (with
depends_on/ ports), package scripts (dev/start/serve, using the lockfile’s package manager), Procfile, Python, and Makefile targets — and writes a dependency-ordered.runbook.json. - Start Project runs each service in order, polling tcp/http health checks (or an explicit grace wait when no port is published) before starting dependents. If there is no runbook yet, Start scans first.
- Stop Project tears down in reverse order: process-group kill for shell-spawned apps (so
npm run devactually releases its port), anddocker compose stop <service>per Compose service — not a fulldownon the first one.
Agents (Copilot Chat, Claude Code, etc.) can call the Language Model Tool project_autostart_run with scan, start, stop, or status. Start/stop stay behind explicit user or tool actions; scan/status are report-friendly for agents.
Install
git clone https://github.com/bobrowsse-tech/smart-project-autostart.git
cd smart-project-autostart
npm install
npm run package
npx @vscode/vsce package --no-dependencies
code --install-extension smart-project-autostart-0.2.0.vsix
Or press F5 in VS Code / Cursor after npm install to launch an Extension Development Host.
Known limits
- Compose services with a container
healthcheckbut no published host port fall back to a grace wait — the host cannot probe the container healthcheck directly. - Monorepo subdirectory scoping is supported in the scanner API; the sidebar still scans the workspace root by default.
- If detection is wrong, fix
.runbook.jsonvia Edit Runbook (manual fields are preserved on re-scan).
How it’s built
- TypeScript (strict) + esbuild CJS bundle (
dist/extension.js) - VS Code Extension API
^1.95.0— side-panelWebviewView, commands, Language Model Tool - Core logic lives in
src/service/with novscodeimports (shared by UI + LM tool)
npm run watch # esbuild + tsc
npm run test:unit # Node test runner via tsx
npm run package # production bundle
Author
Bob Rowsse Walakira — hello@bobrowsse.com
License
MIT
Contributing
Changes to main must go through a pull request. See CONTRIBUTING.md.
Extension Development Host
With the local suite umbrella checked out, press F5 (Extension + playground) to load ../playgrounds/smart-project-autostart/ as the test workspace.