cursor-sdk-e2e-devlisted
Install: claude install-skill sarptandoven/doppl-multiplayer
# Cursor SDK harness: end-to-end dev & testing
The `cursor` harness drives the **Cursor Python SDK** (`cursor_sdk`, an
`AsyncAgent` over a local bridge) and bridges Doppl's `sys_*` tools into
Cursor as SDK `custom_tools`. This skill is the proven recipe for running it
**for real** against a live local server — not just the unit tests.
> The harness runs as a **local runner** from your current checkout, so
> `omni run <bundle> --server <url>` exercises exactly the code you're on.
## Prerequisites (check these first)
1. **You're on the branch you want to test.** The cursor harness merged to
`main` (#203/#204). Test on `main` unless validating a specific branch.
2. **A Cursor API key is configured.** The SDK *requires* an API key
(`crsr_…`); there is no `cursor-agent login` path. Verify (booleans only —
never print the key):
```bash
.venv/bin/python -c "from omnigent.onboarding.cursor_auth import cursor_api_key_configured; import os; print('config:', cursor_api_key_configured(), 'env:', bool(os.environ.get('CURSOR_API_KEY')))"
```
If both are `False`, run `omni setup` and register a Cursor key, or
`export CURSOR_API_KEY=crsr_…`.
3. **`cursor-sdk` is installed** (a baseline dependency):
`.venv/bin/python -c "import cursor_sdk; print(cursor_sdk.__file__)"`.
4. **Network egress to Cursor's backend.** The bridge subprocess talks to
Cursor's own API; a turn that hangs or fails to connect on a locked-down
host is usually an egress problem, not a ha