DockShift is a floating command dock for Windows. Clipboard history, workspace snapshots, a bring-your-own-model AI assistant, a real terminal, voice-to-text, and more — always within reach, never in your way.
One translucent bar, floating above everything. Tap an icon — a panel slides out. Click away — it's gone.
Snapshot every open app, window, and layout — then put your full project back exactly where you left it.
The one feature no other Windows tool ships out of the box.
You've got a clipboard manager, a launcher, a notes app, a terminal, an AI chat tab, and a dozen browser windows open for "that one doc." Every tool lives somewhere else. Every task is a context switch.
DockShift collapses all of it into a single floating bar. Hit Ctrl + Shift + D — it's
there. Click an icon — a clean, draggable, resizable panel appears. Click away — it disappears.
Your tools come to you.
Important
Windows only. DockShift hooks into Win32 window tracking and Windows clipboard internals — macOS and Linux aren't supported.
|
Persistent, system-wide, type-aware — text, images, files, links, and hex colors. Filter by type, click to re-copy, click images for a fullscreen preview. |
Spotlight-style app launcher with fuzzy search across your Start Menu — now with real app icons. Arrow keys to navigate, Enter to launch. |
A WYSIWYG rich-text editor — headings, lists, code blocks, checkboxes, blockquotes. Pin the notes that matter to the top. |
|
Capture the full screen or a single window. Saved, thumbnailed, and browsable — preview, copy, or open in Explorer. |
A sandboxed |
Every panel is draggable and resizable from any edge. Drag the dock itself by the grip handles. It all stays exactly where you put it. |
Prerequisites — Node.js 18+, Windows 10/11, and Windows build tools (
node-ptycompiles natively). For AI features, an API key for your provider of choice — or just run Ollama locally, no key required.
# 1 — clone & install
git clone https://github.com/Salah-XD/dockshift.git
cd dockshift
npm install
# 2 — run it
npm run devThat's it. The dock appears at the bottom of your screen — press Ctrl + Shift + D to
toggle it anytime.
Add your AI provider in Settings → AI & Models — paste a key (stored encrypted) or
pick Ollama for a fully local setup. Optional: copy .env.example to .env for a
dev-time Gemini key.
Note
Installing the prebuilt .exe and Windows says "Unknown publisher"? That's expected —
DockShift is open source and not yet code-signed. A Microsoft cert costs ~$200/yr, so we're
waiting until the first hundred installs to buy one. Click More info → Run anyway.
Or read the source / build it yourself.
More commands
npm run dev:vite # Vite dev server only (React HMR)
npm run dev:electron # Electron only (expects Vite already running)
npm run build # production renderer build → dist/
npm run dist # Windows NSIS installer + portable build → release/
npm run dist:dir # unpacked build (faster, for local testing)Packaging needs an app icon at
assets/icon.ico. Taggedv*pushes also build releases via GitHub Actions.
DockShift is an Electron app: a node-pty/Win32-powered main process for all
system access, and a sandboxed React + Vite renderer that talks to it only through an
allowlisted IPC bridge.
| Layer | Tech | Role |
|---|---|---|
| Shell | Electron 40 | Desktop runtime, system APIs, window tracking |
| UI | React 18 + Vite 5 | Component UI with instant HMR |
| Terminal | xterm.js + WebGL + node-pty | GPU-rendered embedded terminal |
| AI | Gemini · OpenAI · Claude · Ollama · OpenRouter | Multi-provider chat & transcription |
| Panels | re-resizable | Draggable, 8-way resizable containers |
dockshift/
├── electron-main.js # main process — IPC, window mgmt, pty, AI providers
├── preload.js # the secure, allowlisted main ↔ renderer bridge
├── electron-secrets.js # OS-keystore-encrypted API key storage
└── src/
├── components/ # DockMenu + one *Panel.jsx per feature
├── components/ui/ # the shared design-system component library
├── hooks/ # panel drag + positioning
├── workspace/ # snapshot / window-tracking logic
└── styles/ # design tokens + panel styles
A floating dock with system-level access has to earn your trust:
| Measure | What it means |
|---|---|
| Context isolation + sandbox | The renderer has zero direct Node.js access |
| Allowlisted IPC | Every invoke/send channel is explicitly whitelisted in preload |
| Encrypted secrets | API keys live in the OS keystore — never in the renderer, never in git |
| PTY env scrubbing | Secret-looking environment variables are stripped from terminal sessions |
| Injection-safe | Shell calls use argument arrays; paths are validated against traversal |
| Sandboxed webview | The browser panel runs in an isolated partition, dangerous URL schemes blocked |
Pull requests are welcome — bug fixes, new panels, polish, all of it.
- Fork the repo and branch off (
git checkout -b feature/your-idea) - Build your thing — the renderer hot-reloads; main-process changes need a restart
- Open a PR with a clear description
Good to know: the project is ES Modules (
"type": "module"), butpreload.jsis CommonJS (Electron requires it).node-ptyneeds native build tools on first install.
MIT — free to use, fork, and build on.
Built for people who keep too many windows open.
DockShift — because Alt+Tab is so last decade.
Powered by Shineup



