A quieter way
to give agents tools.
The browser tools use Node.js 22+ and a normal browser extension. WeChat and QQ adapters also need Python 3.11+. Windows is the verified native desktop platform for this release.
1. Get the source
git clone https://github.com/YangBY-117/stilldesk.git
cd stilldesk
node bin/stilldesk.mjs --help
node bin/stilldesk.mjs doctorDoctor checks provider setup. It does not log in, send a message, or start a recording. A missing dependency or native adapter is reported explicitly.
2. Connect your browser
node packages/browser/scripts/prepare.mjs
node packages/browser/scripts/register-native-host.mjs --browser=chrome --applyIn Chrome, open chrome://extensions, enable Developer mode, and load the unpacked directory packages/browser/extension. For Edge, use edge://extensions and register with --browser=edge. The extension needs your normal installation permission once; it does not request a remote debugging session.
Prepare and registration commands print their exact paths and changes. Registration is a dry run unless --apply is provided.
node bin/stilldesk.mjs browser list_pages
node bin/stilldesk.mjs browser take_snapshot '{"pageId":123}'3. Add MCP to your agent
node bin/stilldesk.mjs config codex
node bin/stilldesk.mjs config claude-code
node bin/stilldesk.mjs config gemini
node bin/stilldesk.mjs config listConfiguration commands print a configuration. They do not modify your existing harness or launch it. Copy the exported configuration into the client's supported MCP settings. Claude Code output is checked statically and Claude Code is never run by verification.
4. Add native app adapters
For WeChat and QQ, install the relevant Python package from integrations/wechat or integrations/qq into your chosen environment. Then set STILLDESK_PYTHON and the appropriate STILLDESK_WECHAT_CONFIG or STILLDESK_QQ_CONFIG to your account-bound local configuration.
No account credentials, message history or personal configuration are distributed with the repository. Account binding happens locally, against the installation you explicitly select. The capability matrix explains the currently available reads and unavailable writes.
Feishu uses the official authenticated lark-cli. Tencent Meeting local transcription and cloud recordings have separate dependencies and authorization. Neither is started automatically.
5. Allow only the file directories you need
node bin/stilldesk.mjs --allow-upload-root /absolute/path/to/reports --allow-download-root /absolute/path/to/Downloads mcpFile upload defaults to no authorized directories. Add a specific absolute directory when you want your agent to attach files. Browser downloads follow the browser's Downloads settings; --allow-download-root controls which downloaded files StillDesk may read back to verify their bytes and SHA-256. It does not turn an arbitrary path into a browser download destination.
Remote connectors and desktop plugins
The repository includes MCP stdio, a token-authenticated Streamable HTTP transport, and plugin/configuration examples. A remote ChatGPT connector requires HTTPS and the authentication supported by that deployment. This repository is not an already hosted connector and is not a claim of approval in a plugin marketplace.
# Set a strong random token in your environment first.
node bin/stilldesk.mjs serveThe server binds to loopback by default. It does not start a public tunnel or change your firewall.
Verify the release
npm test
npm run check
node bin/stilldesk.mjs doctorBrowser live checks use isolated test profiles and synthetic local fixtures. No live message sending, user meeting capture or Claude Code launch is part of release verification.