Skip to content

MdShahnawazSheikh/DevWorkspace

Repository files navigation

DevWorkspace

The Ultimate Context Switcher for macOS.

One click boots a whole dev environment — terminals, editor, containers, browser tabs. A Keychain-backed vault surfaces your .env configs. A one-click cleaner kills zombie localhost ports. All from your menu bar.

Build License: MIT Platform Swift

DevWorkspace — one-click workspace boot, Keychain-backed .env vault, and ports cleaner



DevWorkspace in action — booting a workspace, revealing .env secrets, and cleaning up ports from the menu bar

What it does

DevWorkspace lives in your menu bar and removes the daily friction of switching between local projects. Three focused tools, zero ceremony:

🗂 Workspaces Define a project once — terminals, VS Code, Docker Compose, browser tabs — and boot the whole thing in one click, with real dependencies between steps (e.g. wait for the API to start before opening the browser).
🔒 Env Vault Point it at your project folders and it surfaces their .env files, encrypted in the macOS Keychain, masked until you explicitly reveal, with an optional Touch ID gate.
Ports See every listening localhost port with process, PID, and uptime. Kill stuck dev servers gracefully (SIGTERM first, SIGKILL only if you confirm).

Features

  • One-click workspace boot with four action types — Terminal (Terminal.app or iTerm2), VS Code, Docker Compose, and browser URLs.
  • Real dependency graph — independent actions run in parallel; dependent ones wait. A live checklist ticks each step off with inline per-item error states (Docker not running, code CLI missing) — never a silent failure or one blocking alert.
  • Kill Workspace reverses a boot: it stops the Docker stacks it started and closes only the terminal windows it opened — never your unrelated windows.
  • Human-readable JSON configs — each workspace is a JSON file under ~/Library/Application Support/DevWorkspace/Workspaces, so you can hand-edit or version-control them in your dotfiles.
  • Keychain-backed secrets — values never touch a plist/JSON/SQLite file in plaintext. Masked by default, click-to-reveal with a 10-second auto-remask, copy-without-reveal, and clipboard copies marked concealed so clipboard-history tools skip them.
  • Optional Touch ID to reveal or copy any secret (LocalAuthentication).
  • Graceful port cleanup with a real "here's exactly what will be killed" confirmation for bulk actions, and throttled auto-refresh that pauses when the tab isn't visible.
  • Global summon hotkey (default ⌘⇧D) that works even when the app isn't frontmost.
  • Native menu bar app — NSStatusItem, .ultraThinMaterial panel, full Dark/Light Mode parity, spring-animated throughout, respects your system accent color.

Installation

Homebrew (recommended)

brew tap MdShahnawazSheikh/devworkspace
brew install --cask dev-workspace

First launch: DevWorkspace is distributed as an open-source build. If it isn't signed with a paid Developer ID yet, macOS Gatekeeper will ask you to confirm. Either right-click the app → Open the first time, or run:

xattr -cr /Applications/DevWorkspace.app

We are upfront about this rather than pretending the build is notarized when it isn't. See release notes for the signing status of each build.

Build from source

Requires macOS 13+ and Xcode 15+ (Swift 5.9+). No CocoaPods, no Carthage — Swift Package Manager only.

git clone https://github.com/MdShahnawazSheikh/DevWorkspace.git
cd DevWorkspace
make run        # builds a release .app and launches it

Other targets: make app (bundle only), make build (debug executable), make clean.

Why this stack — native Swift + SwiftUI

DevWorkspace is native Swift/SwiftUI with AppKit interop, and that's a deliberate choice for this specific tool:

  • It handles secrets. Keychain Services (Security.framework) is a first-class native API. There is no hand-rolled crypto here, and no plaintext secret store. A tool asking you to trust it with production .env values should be built on the platform's own secret vault, not a cross-platform abstraction over it.
  • It's shell orchestration + a thin native UI. The core job is spawning processes (Process), driving apps via AppleScript, and opening URLs (NSWorkspace). Native Swift does this cleanly and directly.
  • Idle footprint matters for a menu bar resident. The target is <30 MB idle / <1% idle CPU. Electron can't meet that budget, and it would make Keychain integration and process-spawning messier — undermining the exact trust pitch that makes this tool worth using. Tauri/Flutter add layers with no upside here.

If you'd have chosen differently, the code is small and readable — open an issue and let's talk.

Security

Secrets are the highest-risk surface in this app, so the storage model is documented in full and honestly in SECURITY.md. The short version:

  • Every .env value is stored as a Keychain generic-password item scoped to the app, protected WhenUnlockedThisDeviceOnly (never synced to iCloud).
  • No secret value is ever written to a plist, JSON, SQLite, or log — including in DEBUG builds.
  • Values are masked by default; revealing is always an explicit action, auto-re-masked after 10 seconds.
  • Clipboard copies are flagged concealed/transient so clipboard managers don't retain them.
  • Optional Touch ID gate on reveal/copy.

Found a vulnerability? See the disclosure process in SECURITY.md.

Keyboard shortcuts

Action Shortcut
Summon the panel (global) ⌘⇧D (configurable)
Preferences ⌘,
Dismiss the panel Esc / click outside
Quit via right-click menu → Quit

Roadmap

Not in v1, tracked for later (contributions welcome):

  • Cloud sync of workspace configs / vault data
  • Team / shared workspace configs
  • Editors beyond VS Code — Cursor and Zed support (the most-requested addition)
  • A custom scripting / plugin system for action types
  • Remote / SSH workspace boot

Contributing

Issues and PRs welcome — start with CONTRIBUTING.md and the good first issue label.

License

MIT © DevWorkspace contributors.

About

One-click dev environment launcher, Keychain-backed .env vault, and ports cleaner — a native macOS menu bar app.

Topics

Resources

License

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages