Taskwindow
FreeMaintainedTaskWindow local daemon: bridges the TaskWindow Chrome extension to any MCP client over Streamable HTTP
About
TaskWindow local daemon: bridges the TaskWindow Chrome extension to any MCP client over Streamable HTTP
README
Let any coding agent drive your real, logged-in Chrome — the tabs you're already signed into — without touching the windows you're working in.
[coding agent] --MCP--> [TaskWindow daemon] --WebSocket--> [Chrome extension] --CDP--> [your tab]
Works with Claude Code, Cursor, Windsurf, Codex, or any client that speaks MCP over HTTP.
Setup (5 minutes)
Requires Node 18+ and Chrome/Chromium 116+.
npm install -g taskwindow
taskwindow install
The guided installer:
- shows a checkbox list of detected coding agents (choose any combination, or None);
- installs the background daemon as a login service;
- opens the TaskWindow listing on the Chrome Web Store and waits for a verified connection.
In Chrome, click Add to Chrome. That is the only click: the extension
pairs with the daemon on its own, and the installer prints ready ✓ once
Chrome is connected. Chrome keeps the extension up to date from the store.
Installed the extension first? A setup guide opens with the two commands above and turns green by itself as soon as the daemon is running. Coming from the installer, nothing opens.
Try it
Ask your agent: "Open example.com in a new tab and take a screenshot."
A blue tab group named after your task appears in a separate TaskWindow window — the agents' workspace, shared by every task and every agent, and kept open by a pinned tab no agent can close. Screenshot done. Now try: "Find the sign-up link and read the page's headings."
Repair and advanced commands
taskwindow update # update daemon + extension to the latest release, no clicks
taskwindow doctor # diagnose daemon, extension, versions, and agents
taskwindow pair # create a manual one-time pairing code
taskwindow install # re-run first-time setup; reopens the store listing if the extension is missing
taskwindow install --claude # add Claude Code without repeating setup
taskwindow install --cursor # add Cursor without repeating setup
taskwindow install --opencode # add OpenCode without repeating setup
When a newer release exists, agents are told once per session (in the
tabs_create result and in taskwindow_status) to ask you before running
taskwindow update. The daemon learns this by asking the npm registry for the
package's latest version at most once a day; create ~/.taskwindow/no-update-check
to turn that off.
Use taskwindow install --no-extension to install only the daemon and selected
agents. Developing the extension? taskwindow install --extension <zip> unpacks
a build into the TaskWindow Extension folder in your home directory for
chrome://extensions → Load unpacked, pairing through a one-time code the
installer leaves in that folder; taskwindow update then refreshes those files
too. Loaded unpacked before the store listing existed? Remove that copy in
chrome://extensions before adding the store one — two copies would keep
taking the daemon connection from each other. For another MCP client, connect to http://127.0.0.1:9377/mcp with
Authorization: Bearer <token>; the token is stored in ~/.taskwindow/token.
What the agent gets
| Area | Tools |
|---|---|
| Status | taskwindow_status (daemon/extension readiness and recovery guidance) |
| Tabs | tabs_list, tabs_create, tabs_close, navigate, reload |
| See | computer (screenshot + click/type/key/scroll), read_page, find, get_page_text |
| Act | form_input, file_upload, upload_image, javascript_execute |
| Debug | read_console_messages, read_network_requests |
| Efficiency | browser_batch (multi-step in one call), gif_record, set_viewport (responsive view), shortcuts_* |
How the isolation works
- Task groups & sessions: every tab the agent creates goes into a blue tab
group named after its task — one group per agent session, holding every tab
of that job however many sub-tasks it spans. The first
tabs_createnames it; every later tab joins it. Naming the task also says whether the job might take more than an hour (longRunning): a group for a shorter job closes itself, tabs and all, once it has been idle for an hour, so finished work does not pile up in the window; long-running groups stay until unused for 30 days. Sessions are isolated from each other:tabs_createreturns a secret sessionToken and every browser tool call is scoped to that session's groups, so concurrent agents never share tabs — even when they pick the same task name. By default the agent can only see and act on tabs in its own groups — never yours. You can click a group in the toolbar popover to watch, and widen access in settings. - Your focus is never taken: nothing the agent does brings a tab or window
forward on you. Chrome's
tabs.createmakes a new tab active by default andwindows.createfocuses the new window by default; TaskWindow always opens tabs in the background (a background tab still renders, so screenshots and page reads work), creates the agent window unfocused, and hands focus back if Chrome raises a window anyway. A background tab also takes mouse, wheel and keyboard input over the DevTools protocol (checked in Chrome: click, scroll and type all land in a tab that is not its window's active tab, and it stays that way), so nothing ever brings a tab forward. Clicking a group in the popover is the only thing that focuses the agent's window — and that is you asking for it. - Pairing: the daemon listens on 127.0.0.1 only. Chrome stamps every
request the store extension makes with its fixed extension id as the origin,
which no other extension or web page can forge, so the daemon hands the
bearer token to that origin and nothing else. An unpacked development build
pairs with a short-lived, single-use code the installer leaves in its
folder; manual codes are available with
taskwindow pair. - Agent actions are visible: a phantom cursor and glow show where the agent is acting; while it does, Chrome shows a "started debugging this browser" infobar — an unavoidable Chrome policy for this capability, same as Claude's own extension.
Requirements & limits
- Chrome/Chromium 116+ (Chrome, Edge, Brave, Arc…)
- Node 18+ for the daemon
- Page tools run in the top frame; native
alert()/confirm()dialogs block the attached tab
Development
git clone https://github.com/clawnify/taskwindow
cd taskwindow/daemon && npm install && npm test
The test suite boots the daemon with a fake extension and runs a real MCP client against it (auth, dispatch, batching, error paths).
Install Taskwindow in Claude Desktop, Claude Code & Cursor
unyly install taskwindowInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add taskwindow -- npx -y taskwindowStep-by-step: how to install Taskwindow
FAQ
Is Taskwindow MCP free?
Yes, Taskwindow MCP is free — one-click install via Unyly at no cost.
Does Taskwindow need an API key?
No, Taskwindow runs without API keys or environment variables.
Is Taskwindow hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Taskwindow in Claude Desktop, Claude Code or Cursor?
Open Taskwindow on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Playwright
Browser automation, scraping, screenshots
by MicrosoftPuppeteer
Browser automation and web scraping.
by modelcontextprotocolGarmin Connect
An MCP server for Garmin Connect that provides access to fitness activities, health statistics, and sleep data by routing requests through a headless browser to
by etweisbergHiggsfield Unlimited
MCP server for Higgsfield AI that enables unlimited-mode image, video, audio generation, uploads, and job management via multiple parallel accounts, using brows
by nukIeeropentabs-dev/opentabs
Plugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a
by opentabs-devrobhunter/agentdeals
1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan
by robhunterhlydecker/ucsc-genome-mcp
MCP server to interact with the UCSC Genome Browser API, letting you find genomes, chromosomes, and more.
by hlydecker34892002/bilibili-mcp-js
A MCP server that supports searching for Bilibili content. Provides LangChain integration examples and test scripts.
by 34892002achiya-automation/safari-mcp
Native Safari browser automation for AI agents with 80+ tools. No Chrome dependency, optimized for Apple Silicon with 60% less CPU overhead.
by achiya-automationagent-infra/mcp-server-browser
Browser automation capabilities using Puppeteer, both support local and remote browser connection.
by bytedanceCompare Taskwindow with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All browse MCPs
