Skip to content

yangby-117/stilldesk

v0.1.0MIT

Background-first browser and native app tools. Your cursor stays yours.

StillDesk

Your agent works. Your cursor stays yours.

Background-first tools for Chrome, Edge, WeChat, QQ, Feishu, and Tencent Meeting.

Website · Get started · Capabilities · 中文

License: MIT MCP + CLI Native platform: Windows

Your agent should be able to help without taking over the computer you are using. StillDesk gives it app-specific background interfaces through one CLI and one MCP server. You keep typing. Your browser and native tools do the work quietly.

Browser control uses a normal extension and Native Messaging. It does not use a remote debugging port, CDP, Puppeteer, Playwright connections, or the extension debugger permission. Native app adapters use local records or service interfaces; an unavailable background action returns a clear capability error.

See what is actually ready

AppAvailable background pathCurrent boundary
Chrome + EdgeTabs, navigation, DOM snapshots, forms, scroll, DOM drag, waits, uploads, downloads, visible-tab screenshots37 live local-fixture checks per browser; trusted user gestures and native dialogs remain unsupported
WeChatAccount-bound local history/search, cursor-only pagination, long-message context, images, verified cached attachmentsInherits the repaired 0.5 read backend; current native sends and uncached network downloads are not available
QQLocal personal-client history, search, stable cursors, single-message context and cached imagesRead-only; no personal-account sender is implied
Feishu / LarkFixed operations through the official CLI and authorized service APIsRequires your app/account authorization; writes are previewed before explicit execution
Tencent MeetingLocal sessions/transcripts and authorized cloud recording readsCapture requires an explicit request; models and credentials are not bundled

The browser checks include real HTTP file receipt, SHA-256 comparisons, and before/after checks of the Windows foreground window and physical cursor. WeChat and QQ process-status probes also leave both unchanged. These are scoped observations, not a claim that every website, client version or agent runtime has been accepted. See the capability matrix.

Visualization of the committed test ledger; this is not a desktop recording or a benchmark animation.

Quick start

Node.js 22+ is enough for the browser tools and universal entry point. Python 3.11+ is required for the optional local messaging adapters.

git clone https://github.com/YangBY-117/stilldesk.git
cd stilldesk
node scripts/setup.mjs
node bin/stilldesk.mjs doctor

Load packages/browser/extension as an unpacked extension in Chrome or Edge. Then review and apply the native host registration for that browser:

node packages/browser/scripts/register-native-host.mjs --browser=chrome
node packages/browser/scripts/register-native-host.mjs --browser=chrome --apply
# Edge: replace chrome with edge.

Registration uses a dedicated StillDesk host and is reversible. It does not edit your existing agent configurations, launch a new login, or start a recording.

node bin/stilldesk.mjs browser list_pages
node bin/stilldesk.mjs browser take_snapshot '{"pageId":123}'
node bin/stilldesk.mjs mcp

Choose the real page ID and fresh node UIDs from the response. New tabs are background tabs. An inactive tab is never activated just to take a screenshot.

For the local messaging packages:

node scripts/setup.mjs --messaging

Account binding and authorization are explicit, local setup steps. The repository contains no account configuration, message databases or sessions.

Bring your agent

Print a configuration for your client:

node bin/stilldesk.mjs config codex
node bin/stilldesk.mjs config claude-code
node bin/stilldesk.mjs config gemini
node bin/stilldesk.mjs config kimi
node bin/stilldesk.mjs config openclaw
node bin/stilldesk.mjs config hermes
node bin/stilldesk.mjs config list

Targets also include ZCode, DeepSeek Harness, Cursor, VS Code, Copilot, Cline, OpenCode, generic MCP clients, and portable ChatGPT/Codex desktop plugin files. Configuration generation and protocol tests are distinct from live testing in a specific harness. Claude Code is never launched by project verification. See client compatibility for documented formats and validation levels. The token-authenticated Streamable HTTP adapter is available via stilldesk serve; public HTTPS hosting, connector authentication and any marketplace submission are separate deployment steps.

A small contract

  • Your input devices stay yours. No physical pointer movement, global key injection, foreground-window calls, or hidden desktop fallback in default tools.
  • Local access is explicit. File uploads and downloads require permitted upload directories and explicit downloaded-file readback roots. Ordinary browser downloads follow the browser's own Downloads settings. Accounts have separate local configuration and caches.
  • Plans are not receipts. A send preview is not a sent message. A populated file input is not a server upload receipt. Uncertain outcomes are not retried as fresh actions.
  • App content is data. A message, transcript or web page is never treated as authorization or a tool instruction.
  • Unsupported means unsupported. Native writes are not replaced with a bot account, UI clicking, or a successful-looking empty response.

Architecture

Your agent
    │
MCP stdio / CLI / authenticated Streamable HTTP
    │
StillDesk router
    ├── browser ── local IPC ── Native Messaging ── Chrome / Edge extension
    ├── wechat ── account-bound local reader + explicit capability states
    ├── qq ── account-bound QQNT local reader
    ├── feishu ── official native CLI ── authorized service APIs
    └── meeting ── local session tools / read-only cloud recording adapter

No model provider is built in. The tool returns structured observations to your existing agent; the agent keeps its reasoning and context.

Verify and contribute

npm test
npm run check
node scripts/setup.mjs --test-deps

Browser live tests use isolated profiles and synthetic local HTTP fixtures. No live message sends, user-meeting recording, or Claude Code execution are part of release validation. Contributing · Security · Third-party attribution.

StillDesk is early software, and the adapters do not all have the same scope. We would rather show the exact working path than advertise a silent fallback.

License

MIT for original StillDesk code. Incorporated third-party components retain their licenses and notices. The brand illustration is AI-generated; it is not a product screenshot or evidence of tool execution.