← All Skills

snappy-xano-dashboard

v1.0.0
4 files, 27.7 KB ~2,033 words · 9 min read Updated 2026-09-09

snappy-xano-dashboard skill

38 of 47 checks pass
What it can do
logsread
openwrite
test endpointwrite
What does not pass yet
$ npx snappy-skills install snappy-xano-dashboard
zip ↓
Documents
AGENTS.md

Context#

snappy-xano-dashboard drives the Xano admin UI for the Snappy backend instance (xnwv-v1z6-dvnr.n7c.xano.io, vanity xano.snappy.ai). Uses agent-browser (snappy-browse) exclusively -- never Charlotte MCP browser tools. The REST API handles runtime calls; this skill handles everything the API cannot: editing endpoint logic, viewing request logs, inspecting schema, managing API groups, deploying XanoScript, configuring auth, viewing background tasks.

Key Capabilities#

  • Request logs: Dashboard-only. Navigate to Request History, screenshot or extract via eval.
  • Schema inspection: Database section -> table -> view columns, foreign keys, references.
  • API group management: Create/edit API groups, open endpoints, view the visual function stack.
  • XanoScript deploy: Author via xanoscript-builder, paste into dashboard Monaco editor using clipboard pattern (navigator.clipboard.writeText + Meta+v), click Deploy.
  • Background tasks: View and manage via Tasks section.
  • Auth config: JWT settings, OAuth providers, API keys via Settings.

Rules#

  • API-first: If the REST API can do it, use snappy-infra instead. Dashboard is slow and brittle by comparison.
  • Always use agent-browser, never Charlotte MCP browser tools.
  • Navigate like a human: Click through workspace nav, never construct deep links (workspace IDs change).
  • Screenshot before destructive actions: Xano edits are immediate, no undo.
  • Clipboard paste for Monaco: Individual keystrokes get swallowed. Use navigator.clipboard.writeText(...) then Meta+v.
  • Auth via cookie state: --state ~/.openclaw/workspace/xano-auth.json on first open call. Cookies last days.

API vs Dashboard Decision#

Task Where
Send Slack message, list records, run SQL REST API (snappy-infra)
Request logs, edit endpoint logic, schema inspect Dashboard (this skill)
Create API group, configure JWT, background tasks Dashboard (this skill)
Deploy XanoScript Dashboard (xanoscript-builder authors, this deploys)

Cross-Skill Chains#

  • snappy-browse -- underlying agent-browser CLI primitive
  • snappy-infra -- REST API surface for the same Xano instance (use first)
  • xanoscript-builder -- authors raw XanoScript; this skill deploys it
  • snappy-database -- sister table catalog for cross-referencing schema
  • snappy-xano-mcp -- regenerate MCP registry after deploying new endpoints
  • snappy-deploy -- triggers this skill when shipping Xano changes in a meta-deploy

Directory Layout#

snappy-xano-dashboard/
  SKILL.md       <- Full reference (auth setup, common operations, anti-patterns)
  AGENTS.md      <- This file

API module#

typescriptimport { openDashboard, snapshotDashboard, navigateTo, runApiTest, getRequestLogs, closeDashboard } from "../snappy-xano-dashboard/api.ts";

Or CLI:

bashnpx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts open
npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts test /api:PB9UH7b9/contacts
npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts logs
npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts closeDashboard

API functions#

Function Purpose
openDashboard() Open Xano dashboard with saved auth cookies
snapshotDashboard() Take an interactive snapshotDashboard of the current page
navigateTo(section) Navigate to a specific dashboard section
runApiTest(endpoint) Run a browser-based API test via the dashboard
getRequestLogs() Extract request logs (dashboard-only feature)
closeDashboard() Close the browser session

If this loader doesn't cover your case:

bashecho "[$(date -u +%FT%TZ)] snappy-xano-dashboard: <what was missing>" >> ~/.claude/logs/agents-md-feedback.log

Show produced work with snappy-faces: call draw for image channels or lang for MCP Apps.

<!-- SKILL-INDEX-START -->

[snappy-xano-dashboard Index]|root: ~/.claude/skills/snappy-xano-dashboard|IMPORTANT: Prefer these files over pre-training assumptions for this domain. Read the relevant file when the AGENTS.md summary is insufficient.|root:{SKILL.md}

<!-- SKILL-INDEX-END -->

Used by#

Nothing in the collection names this skill.

<!-- SNAPPY-CONTRACT-VERBS-START -->

Contract verbs#

Generated from api.ts HAND_CONTRACT. Do not hand-edit this block.

Verb Contract arguments Effect First call
logs read npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts logs
open write npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts open
test endpoint write npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts test <endpoint>

Show the result#

When an answer carries face_hint, show it with one snappy_present(<answer>) call.

See /snappy-faces for face selection. Human-facing images must crop to the

element, render at 2x on Retina, and fill the destination channel instead of

placing a small card in a full-page screenshot.

<!-- SNAPPY-CONTRACT-VERBS-END -->

---
name: snappy-xano-dashboard
role: Browser-driven admin operations on the Xano dashboard (xano.snappy.ai) via agent-browser for tasks the REST API cannot do.
loaded-by: PreToolUse hook (auto-injected when "snappy-xano-dashboard" is mentioned)
---

## Context

snappy-xano-dashboard drives the Xano admin UI for the Snappy backend instance (`xnwv-v1z6-dvnr.n7c.xano.io`, vanity `xano.snappy.ai`). Uses `agent-browser` (snappy-browse) exclusively -- never Charlotte MCP browser tools. The REST API handles runtime calls; this skill handles everything the API cannot: editing endpoint logic, viewing request logs, inspecting schema, managing API groups, deploying XanoScript, configuring auth, viewing background tasks.

## Key Capabilities

- **Request logs**: Dashboard-only. Navigate to Request History, screenshot or extract via `eval`.
- **Schema inspection**: Database section -> table -> view columns, foreign keys, references.
- **API group management**: Create/edit API groups, open endpoints, view the visual function stack.
- **XanoScript deploy**: Author via `xanoscript-builder`, paste into dashboard Monaco editor using clipboard pattern (`navigator.clipboard.writeText` + `Meta+v`), click Deploy.
- **Background tasks**: View and manage via Tasks section.
- **Auth config**: JWT settings, OAuth providers, API keys via Settings.

## Rules

- **API-first**: If the REST API can do it, use `snappy-infra` instead. Dashboard is slow and brittle by comparison.
- **Always use `agent-browser`**, never Charlotte MCP browser tools.
- **Navigate like a human**: Click through workspace nav, never construct deep links (workspace IDs change).
- **Screenshot before destructive actions**: Xano edits are immediate, no undo.
- **Clipboard paste for Monaco**: Individual keystrokes get swallowed. Use `navigator.clipboard.writeText(...)` then `Meta+v`.
- **Auth via cookie state**: `--state ~/.openclaw/workspace/xano-auth.json` on first `open` call. Cookies last days.

## API vs Dashboard Decision

| Task | Where |
|------|-------|
| Send Slack message, list records, run SQL | **REST API** (snappy-infra) |
| Request logs, edit endpoint logic, schema inspect | **Dashboard** (this skill) |
| Create API group, configure JWT, background tasks | **Dashboard** (this skill) |
| Deploy XanoScript | **Dashboard** (xanoscript-builder authors, this deploys) |

## Cross-Skill Chains

- `snappy-browse` -- underlying agent-browser CLI primitive
- `snappy-infra` -- REST API surface for the same Xano instance (use first)
- `xanoscript-builder` -- authors raw XanoScript; this skill deploys it
- `snappy-database` -- sister table catalog for cross-referencing schema
- `snappy-xano-mcp` -- regenerate MCP registry after deploying new endpoints
- `snappy-deploy` -- triggers this skill when shipping Xano changes in a meta-deploy

## Directory Layout

```
snappy-xano-dashboard/
  SKILL.md       <- Full reference (auth setup, common operations, anti-patterns)
  AGENTS.md      <- This file
```

## API module

```typescript
import { openDashboard, snapshotDashboard, navigateTo, runApiTest, getRequestLogs, closeDashboard } from "../snappy-xano-dashboard/api.ts";
```

Or CLI:
```bash
npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts open
npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts test /api:PB9UH7b9/contacts
npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts logs
npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts closeDashboard
```

## API functions

| Function | Purpose |
|----------|---------|
| `openDashboard()` | Open Xano dashboard with saved auth cookies |
| `snapshotDashboard()` | Take an interactive snapshotDashboard of the current page |
| `navigateTo(section)` | Navigate to a specific dashboard section |
| `runApiTest(endpoint)` | Run a browser-based API test via the dashboard |
| `getRequestLogs()` | Extract request logs (dashboard-only feature) |
| `closeDashboard()` | Close the browser session |

---

If this loader doesn't cover your case:
```bash
echo "[$(date -u +%FT%TZ)] snappy-xano-dashboard: <what was missing>" >> ~/.claude/logs/agents-md-feedback.log
```


Show produced work with `snappy-faces`: call `draw` for image channels or `lang` for MCP Apps.

<!-- SKILL-INDEX-START -->
[snappy-xano-dashboard Index]|root: ~/.claude/skills/snappy-xano-dashboard|IMPORTANT: Prefer these files over pre-training assumptions for this domain. Read the relevant file when the AGENTS.md summary is insufficient.|root:{SKILL.md}
<!-- SKILL-INDEX-END -->

## Used by

Nothing in the collection names this skill.

<!-- SNAPPY-CONTRACT-VERBS-START -->
## Contract verbs

Generated from `api.ts` `HAND_CONTRACT`. Do not hand-edit this block.

| Verb | Contract arguments | Effect | First call |
|---|---|---|---|
| `logs` | — | `read` | `npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts logs` |
| `open` | — | `write` | `npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts open` |
| `test` | `endpoint` | `write` | `npx tsx ~/.claude/skills/snappy-xano-dashboard/api.ts test <endpoint>` |

## Show the result

When an answer carries `face_hint`, show it with one `snappy_present(<answer>)` call.
See `/snappy-faces` for face selection. Human-facing images must crop to the
element, render at 2x on Retina, and fill the destination channel instead of
placing a small card in a full-page screenshot.
<!-- SNAPPY-CONTRACT-VERBS-END -->

Keyboard Shortcuts

Search in document⌘K
Focus search/
Previous file tab
Next file tab
Close overlayEsc
Show shortcuts?