Agentic Dev Environment
Run Claude Code, Codex, and any CLI agent side-by-side
in a grid of real terminal panes — all sharing the same project.
Most AI coding tools give you one assistant. ADE gives you a grid of them.
One pane debugs a pricing bug. Another refactors your filters. Another writes docs. Another investigates why staging broke. All at the same time. All in the same repo. Each pane is a real terminal — not a chat window.
╭─ skinmerge ─────────────────────────────────────────────────────╮
│ │
│ ┌─ claude code ──────┐ ┌─ codex ───────────┐ ┌─ bash ──────┐ │
│ │ │ │ │ │ │ │
│ │ fixing StatTrak │ │ writing API docs │ │ npm test │ │
│ │ pricing bug... │ │ for /trade-up │ │ ✓ 14 pass │ │
│ │ │ │ │ │ │ │
│ ├─ claude code ──────┤ ├─ codex ───────────┤ ├─ git ───────┤ │
│ │ │ │ │ │ │ │
│ │ refactoring │ │ writing tests │ │ 5 files │ │
│ │ filter pipeline │ │ for auth module │ │ changed │ │
│ │ │ │ │ │ │ │
│ └────────────────────┘ └────────────────────┘ └──────────────┘ │
│ │
╰──────────────────────────────────────────────────────────────────╯
git clone https://github.com/Rockazim/Agentic-Development-Environment.git
cd Agentic-Development-Environment
npm install
npm run devNote
Requires Node.js 18+. The postinstall script handles native module rebuilds automatically.
If npm install fails, see node-gyp prerequisites.
| Node.js | 18 or later |
| Windows | Python 3 + Visual Studio Build Tools (for native modules) |
| macOS | Xcode Command Line Tools (xcode-select --install) |
| Linux | build-essential / make / gcc (distro equivalent) |
Native module rebuilds are handled automatically by the
postinstallscript. If you already have a workingnode-gypsetup, no extra steps are needed.
|
Each tab is a project. Create a workspace, pick a directory, choose your grid size (2–9 panes). Switch tabs — terminals stay alive in the background. |
Every pane is a full PTY via node-pty + xterm.js. Full color, scrollback, resize. Run any CLI tool — shells, agents, scripts. |
|
Speak into the focused pane. Audio is transcribed locally via Hugging Face Transformers — nothing leaves your machine. Toggle with a hotkey. |
Each pane has its own shell selector. Switch between PowerShell, WSL, bash, zsh, or cmd — per pane, on the fly. |
|
Open the keys dialog to rebind shortcuts. Record new bindings, clear them, or reset to defaults. Persisted to localStorage. |
Automatically detects available shells. PowerShell, WSL, and cmd on Windows. zsh and bash on macOS/Linux. Works on all three. |
| Shortcut | Action |
|---|---|
| Ctrl+Shift+V | Toggle voice typing |
| Ctrl+Shift+T | Add pane to current workspace |
| Ctrl+Shift+Backspace | Close the active pane |
On macOS, Ctrl is replaced by Cmd.
All shortcuts are rebindable via the keys button in the toolbar.
┌─────────────────────────────────────────────────────────┐
│ │
│ renderer.js │
│ workspaces · xterm · tabs · hotkeys · voice capture │
│ │
│ ▼ IPC (preload.js) ▲ │
├─────────────────────────────────────────────────────────┤
│ │
│ electron/main.js │
│ window lifecycle · IPC routing · permissions │
│ │
│ ▼ ▼ │
├──────────────────┬──────────────────────────────────────┤
│ │ │
│ terminal-mgr │ voice-transcriber.js │
│ PTY spawn/kill │ @huggingface/transformers │
│ shell profiles │ local Whisper inference │
│ │ │
│ ▼ │ │
│ node-pty ────► │ real shell processes │
│ │ │
└──────────────────┴──────────────────────────────────────┘
electron/
├── main.js app lifecycle, IPC handlers, permissions
├── preload.js context bridge (renderer ↔ main)
├── terminal-manager.js PTY spawning, shell profile detection
└── voice-transcriber.js local audio transcription via HF Transformers
backend/src/
├── contracts.ts types, interfaces, port definitions
├── WorkspaceBackend.ts orchestrator (projects, sessions, git, voice)
└── platform.ts OS detection, shell resolution, path helpers
scripts/
└── install-electron-pty.js postinstall for native module rebuild
index.html UI shell — tabs, grid, dialogs
renderer.js frontend — workspaces, terminals, hotkeys, voice
| Desktop | Electron 29 |
| Terminals | xterm.js + node-pty (prebuilt) |
| Voice | @huggingface/transformers (local Whisper) |
| Frontend | Vanilla JS — no framework, no build step |
| Backend | TypeScript with ports & adapters |
| Packaging | electron-builder (Windows NSIS, macOS DMG) |
| Status | Feature |
|---|---|
| ✅ | Workspace tabs with real terminal grids |
| ✅ | PTY shell detection (PowerShell, WSL, cmd, zsh, bash) |
| ✅ | Per-pane shell profile selector |
| ✅ | Local voice transcription (Whisper via HF Transformers) |
| ✅ | Customizable hotkeys with recording UI |
| ✅ | Dynamic pane creation (Ctrl+Shift+T) |
| ✅ | Close-pane hotkey (Ctrl+Shift+Backspace) |
| ✅ | Native folder picker for workspace directory |
| ✅ | IPC security hardening and Content Security Policy |
| ⬜ | Git panel — branch, diffs, staging, commits |
| ⬜ | Chat history persistence |
| ⬜ | Pane resize and drag-to-rearrange |
| ⬜ | Agent file attribution (which agent changed what) |
| ⬜ | Settings and preferences |
| ⬜ | Plugin system |
PRs welcome. Fork it, branch it, change it, open a PR.
# development
npm run dev
# package for distribution
npm run dist:win # → Windows NSIS installer
npm run dist:mac # → macOS DMGReleases and versioning
Desktop releases should be built from a clean checkout with the lockfile, not from an ad hoc local npm install.
Run the Windows build from PowerShell, not WSL:
npm ci
npm run dist:winThe packaged installer is written to dist/.
Use npm versioning so the app version, git tag, and packaged release stay aligned:
npm version patch
# or: npm version minor
# or: npm version majorThat updates package.json, creates a version commit, and creates a git tag such as v0.1.1.
This repo includes:
/.github/workflows/release.ymlfor tag-driven Windows release builds/.github/dependabot.ymlfor weekly npm and GitHub Actions dependency checks
Recommended release sequence:
- Merge the changes you want to ship.
- Run
npm version patch|minor|major. - Push the commit and tag:
git push && git push --tags. - GitHub Actions builds the Windows installer from
npm ci. - The workflow uploads the build artifacts to the matching GitHub Release.
Security
ADE follows Electron security best practices:
- Sandbox enabled — renderer runs in a sandboxed process
- Context isolation — no Node.js access from renderer code
- IPC hardening — all handlers validate sender origin via
assertTrustedSender() - Content Security Policy — strict CSP via meta tag (
default-src 'self',object-src 'none',frame-src 'none') - Navigation blocked — renderer cannot navigate away from the app
- External URLs filtered — only
http/httpslinks open in the system browser
- Keep
package-lock.jsoncommitted and build releases withnpm ci. - Review dependency bumps before merging them.
- Prefer release builds from GitHub Actions instead of an everyday dev machine.
- Code-sign public Windows installers before broad distribution.
- Treat Electron security settings and preload IPC surface as release-critical code.