Ship, inspect, and operate local web projects from one focused desktop cockpit.
Web Dev Companion is an Electron, Vue 3, and TypeScript app for keeping local projects in view. It tracks saved repositories, shows Git status and branch details, opens projects in your editor or terminal, and runs project tasks from a focused desktop UI.
Latest alpha: 0.1.0-alpha.10
macOS release artifacts must be signed with a Developer ID Application certificate and notarized by Apple before they are published.
Web Dev Companion is free software. If it saves you time and you want to support ongoing development, donations are welcome:
- Save and browse local Git repositories.
- Scan a parent folder for cloned repositories that have not been saved yet.
- List and clone repositories from your GitHub account through GitHub CLI.
- Search, sort, and pin frequently used repositories.
- Review branch, remote, dirty state, file status details, diffs, and recent commits.
- Stage, unstage, and reset tracked changes, write commits, and inspect commit details from the repository view.
- Sync, switch, create tracking branches from remotes, and remove safe local branches.
- Manage submodule branch links, merge linked parent/submodule branches downward, and remove safe local-only submodule branches.
- Review project health, including Node package checks and detected Java or Ruby task runners.
- Run available health scripts from the health panel or before committing.
- Open repositories in the file manager, configured editor, or terminal.
- Run, pin, monitor, restart, and stop detected project tasks in managed terminals.
- Detect tasks from Node package scripts, Gradle, Maven, Rails, and Rake projects.
- Receive desktop notifications when managed tasks fail or finish after a longer run.
- Auto-refresh repository state, including refresh-on-focus for the active repository.
- Use the command palette, recent commands, keyboard shortcuts, and desktop menu shortcuts for common actions.
- Configure theme, editor command, refresh interval, sync confirmation behavior, and commit celebration effects.
The branch management modal keeps repository branch work and submodule branch work together:
- Switch local branches, create local tracking branches from remotes, sync branches, and remove safe local branches.
- Select a submodule and manage saved branch links in a small branch-link modal.
- Link repository branches to their matching submodule branches, for example
release/31 -> mono-31andrelease/32 -> mono-32. - When you change the repository merge target, the matching saved submodule target is applied automatically when that branch exists locally.
- Use Merge down to switch to the target repository branch and target submodule branch, merge the current repository branch into the target repository branch, merge the current submodule branch into the target submodule branch, and stage the submodule pointer update.
- Clean up unused local-only submodule branches from the same branch management flow. Remote branches are not deleted by this action.
Branch links are persisted in the app state, so the app can remember repository/submodule branch pairs across launches.
The current app already covers the daily repository cockpit: saved projects, Git state, commits, branches, tasks, terminals, pins, and fast navigation. Good next features would deepen that workflow without turning the app into a full IDE.
- Workspace groups: group repositories by client, product, stack, or workflow so the dashboard can switch between focused sets instead of one flat list.
- Task presets: save multi-task launch profiles such as
dev + api + storybookand start or stop them together from the dashboard or command palette. - Pull request context: show the current branch's PR link, review state, checks, and mergeability when the repository has a GitHub remote.
- Commit assistant: draft a conventional commit message from staged diffs, with editable suggestions before committing.
- Cross-repository branch cleanup view: list stale, merged, gone, or local-only branches across repositories and offer safe cleanup actions.
- Repository notes: keep small local notes per repository for setup steps, ports, credentials location, or recurring commands.
- Port and server monitor: detect running dev servers, show their local URLs, and open or stop the owning process.
- Dashboard filters: add saved filters for dirty repositories, running tasks, branch divergence, package manager, and repo group.
- Command palette workflows: support compound commands like opening a repo, starting pinned tasks, and opening the terminal in one action.
- Recent activity timeline: show recent commits, task runs, branch checkouts, failed commands, and app actions across repositories.
- Dependency upgrade lane: detect package updates and run the relevant check or test script after selected upgrades.
- Environment file awareness: flag missing
.envfiles from.env.exampleand expose quick open/copy actions. - Terminal search and markers: search task output, jump to errors, and preserve important log markers after a run finishes.
- Ready-pattern notifications: let tasks define output patterns that signal when a dev server is ready, then notify or open its local URL.
- Task board for local work: lightweight per-repository task tracking tied to branches, runnable tasks, notes, and recent commits.
- Multi-repository operations: refresh, fetch, install, test, or run tasks across selected repositories with progress and failure summaries.
- Issue tracker integration: connect branches and commits to Linear, GitHub Issues, or Jira so local work has product context.
- AI troubleshooting helper: summarize failing terminal output and suggest the next command or file to inspect.
- Node.js 20.19.4. Run
nvm usefrom the project root if you use nvm. - pnpm 10.14.0.
- Git available on your
PATH. - GitHub CLI authenticated with
gh auth loginto list and clone GitHub repositories.
pnpm installThis project allows pnpm to run the install scripts required by Electron and
Vite's esbuild dependency. If Electron was installed before that setting was
present and pnpm run dev reports that Electron failed to install correctly,
run:
pnpm rebuild electronpnpm run devThe app stores saved repositories, pinned tasks, settings, recent commands, and repository/submodule branch links in Electron's per-user app data directory.
pnpm testThe test command runs the Vue TypeScript checker and the Vitest component test suite.
pnpm run buildLocal builds are packaged without macOS code signing, so a development machine's
personal or expired Apple certificates do not affect pnpm run build.
macOS release builds are different: pnpm run release:alpha and
pnpm run release:alpha:mac run a preflight check and require a valid Developer
ID Application certificate plus Apple notarization credentials. Provide either a
certificate file through CSC_LINK and CSC_KEY_PASSWORD, or install the
certificate in the local keychain. For notarization, provide
APPLE_API_KEY/APPLE_API_KEY_ID/APPLE_API_ISSUER, or a notarytool keychain
profile through APPLE_KEYCHAIN_PROFILE.
Release helpers are also available:
pnpm run release:alpha
pnpm run release:alpha:mac
pnpm run release:alpha:winGenerated build output is intentionally ignored by Git. Commit source files, configuration, lockfiles, and assets instead. Release builds also generate updater metadata such as latest.yml, latest-mac.yml, or prerelease channel equivalents; upload those files with the installer artifacts.
Use this flow when preparing another alpha release:
- Start from a clean
mainbranch that is up to date withorigin/main. - Bump the prerelease version in
package.json, for example from0.1.0-alpha.1to0.1.0-alpha.2. - Update the README download links to the new tag and generated artifact names, using the final asset names reported by GitHub. Only link macOS artifacts after they are signed and notarized.
- Confirm macOS signing and notarization credentials are available.
- Run
pnpm test. - Run the relevant release build:
pnpm run release:alphafor macOS and Windows x64 artifacts.pnpm run release:alpha:macfor only the macOS artifact.pnpm run release:alpha:winfor only the Windows x64 artifact.
- Review
git status, then commit the version and documentation changes. - Create a matching Git tag named
v<version>, for examplev0.1.0-alpha.2. - Push the branch and tag with
git push origin mainandgit push origin v<version>. - Create or update the GitHub prerelease for that tag and upload the generated macOS and Windows artifacts, including the updater metadata files and blockmap files.
The release artifacts are written to release/<version>/ and are not committed.
Before pushing a new remote:
- Review
git statusand make sure only intended source changes are staged. - Run
pnpm test. - Add a remote with
git remote add origin <repo-url>. - Push the current branch with
git push -u origin <branch-name>.
Web Dev Companion is free to use, modify, and share under the MIT license. Pull requests that improve the app, fix bugs, refine documentation, or expand useful local development workflows are welcome.
Before opening a pull request, keep the change focused, avoid committing generated build output or private local configuration, and run:
pnpm testMIT. See LICENSE for details.
