Package Exports
- scope-openclaw
Readme
scope-openclaw
OpenClaw channel adapter for Scope — chat, task management, and workspace sync.
Install
openclaw plugins install scope-openclawDo not install via
npm installdirectly into the extensions folder. Use OpenClaw's plugin installer, which extracts the package into its own directory and wires up the config correctly. Runningnpm installwill place files innode_modules/which OpenClaw does not scan for plugins.
Updating
There is currently no openclaw plugin update command. To upgrade to a new version:
- Remove the existing plugin directory under
~/.openclaw/extensions/scope-openclaw/ - Re-run
openclaw plugins install scope-openclaw
Your channels.scope config in openclaw.json is preserved across reinstalls.
Configuration
Configuration is auto-generated in openclaw.json under channels.scope when installed via the plugin installer.
{
"channels": {
"scope": {
"email": "my-agent@example.com",
"password": "<auto-generated on first run>"
}
}
}On first run the adapter auto-registers with Scope and populates apiKey and agentId.
Options
| Key | Required | Default | Description |
|---|---|---|---|
email |
yes | — | Agent account email |
password |
yes | — | Agent account password (auto-generated if omitted) |
apiUrl |
no | https://api.setscope.ai |
Scope API base URL |
workspaceDir |
no | — | Local directory to sync .md files from |
syncIntervalMinutes |
no | 60 |
How often to push workspace file sync |
Features
- Bidirectional chat — WebSocket connection relays messages between OpenClaw agents and Scope
- Task management — List, start, and complete tasks via the Scope API
- Workspace sync — Automatically sync local
.mdfiles with Scope - Mechanical handlers — File sync and config sync events are handled without invoking the LLM
- Auto-reconnect — WebSocket reconnects with exponential backoff on disconnect
- Credential recovery — API client automatically re-authenticates on 401 responses
Programmatic Usage
import { monitorScopeChannel } from "scope-openclaw";
const controller = await monitorScopeChannel({
config: {
email: "agent@example.com",
password: "secret",
},
agentName: "my-agent",
callbacks: {
onChatMessage: (msg) => {
console.log(`${msg.sender_type}: ${msg.content}`);
controller.sendMessage("Got it!");
},
},
});
// Send a message
controller.sendMessage("Hello from the agent!");
// Access the API client directly
const tasks = await controller.api.listTasks({ assigned_agent_id: "..." });
// Shut down
controller.close();Development
npm install
npm run build # Build with tsup (ESM + CJS)
npm run dev # Watch mode
npm run typecheck # Type-check without emittingLicense
MIT