GET STARTED / LOCAL FIRST

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 doctor

Doctor 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 --apply

In 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}'
Choose the page ID from the real tab list. Actions use document-bound UIDs from a fresh snapshot. Tabs open in the background; tools do not activate your window to complete an action.

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 list

Configuration 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 mcp

File 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 serve

The 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 doctor

Browser 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.