π¦ ClawHub
Sentio Platform
by @sentioxyz
Build, modify, or troubleshoot Sentio projects across processors, Sentio SQL in Data Studio, alerting, and dashboards. Use for tasks involving @sentio/sdk ha...
TERMINAL
clawhub install sentio-platformπ About This Skill
name: sentio-platform description: Build, modify, or troubleshoot Sentio projects across processors, Sentio SQL in Data Studio, alerting, and dashboards. Use for tasks involving @sentio/sdk handlers in processor.ts, sentio.yaml config, metrics/event logs/entity store, running or sharing Sentio SQL queries, creating/updating alert rules and notification channels, or managing dashboards and panels.
sentio-platform
Use npx @sentio/cli@latest for SQL, data queries, alerts, endpoints, and project management.
Setup
1. Check login status: npx @sentio/cli@latest login --status
2. If not logged in, ask the user for api key and run: npx @sentio/cli@latest login --api-key
SQL
sentio data sql --project / --query "SELECT * FROM transfer LIMIT 10" sentio data sql --project / --query "..." --async sentio data sql --project / --result sentio data sql --project / --cursor sentio data sql --project / --file query.yaml --no-cache; control TTL with --cache-ttl-secs and --cache-refresh-ttl-secs --version Data queries
sentio data events --project / sentio data metrics --project / sentio data query --project / --event Transfer --aggr total --group-by timestamp sentio data query --project / --metric burn --aggr avg --filter meta.chain=1 sentio data query --project / --price ETH --func 'topk(5)', --func 'delta(1m)'--start --limit --offset --timezone sentio data query --docAlerts
sentio alert list --project / sentio alert get --project / sentio alert create --project / --type METRIC --subject "Burn spike" --metric burn --aggr avg --op '>' --threshold 100 sentio alert create --project / --type METRIC --subject "Transfer anomaly" --event Transfer --filter amount>0 --aggr total --func 'delta(1m)' --op '>' --threshold 100 sentio alert create --project / --type LOG --subject "Large transfers" --query 'amount:>1000' --op '>' --threshold 0 sentio alert create --project / --type SQL --subject "Alert" --query 'select timestamp, amount from transfer where amount > 1000' --time-column timestamp --value-column amount --sql-aggr MAX --op '>' --threshold 1000 sentio alert create --project / --file alert.yaml sentio alert update --project / --file updated.yaml sentio alert delete --project / --for 5m --interval 1m; between condition: --op between --threshold 10 --threshold2 100sentio alert create --docEndpoints
sentio endpoint create --project / --query "SELECT * FROM t WHERE amount > \${min}" --args '{"min":"int"}' sentio endpoint list --project / sentio endpoint get --project / --id sentio endpoint test --project / --id --args '{"min":1000}' sentio endpoint delete --project / --id Dashboards
sentio dashboard list --project / sentio dashboard create --project / --title "My Dashboard" sentio dashboard create --project / --file dashboard.json sentio dashboard export --project / sentio dashboard import --project / --file dashboard.json sentio dashboard import --project / --stdin sentio dashboard import --project / --file dashboard.json --override-layouts sentio dashboard add-panel --project / --panel-name "Top Holders" --type TABLE --sql "SELECT * FROM CoinBalance ORDER BY balance DESC LIMIT 50" sentio dashboard add-panel --project / --panel-name "Transfer Count" --type LINE --event Transfer --aggr total sentio dashboard add-panel --project / --panel-name "ETH Price" --type LINE --metric cbETH_price --filter amount>1000 --group-by meta.address --func 'topk(5)'--time-range-start -24h --time-range-end now --time-range-step 3600TABLE, LINE, BAR, PIE, QUERY_VALUE, AREA, BAR_GAUGE, SCATTERtotal, unique, AAU, DAU, WAU, MAUavg, sum, min, max, countDashboard import JSON format
When constructing or editing dashboard.json for import, refer to references/openapi.swagger.json for the full schema. Key structure:
{
"dashboardId": "",
"dashboardJson": {
"name": "My Dashboard",
"panels": {
"": {
"id": "",
"name": "Panel Name",
"chart": {
"type": "",
"datasourceType": "",
"sqlQuery": "SELECT ...", // for SQL panels
"queries": [...], // for metric/event panels
"formulas": [...],
"config": { ... }
}
}
},
"layouts": { ... }
},
"overrideLayouts": false
}
Chart.type values: TABLE, LINE, BAR, PIE, QUERY_VALUE, AREA, BAR_GAUGE, SCATTERChart.datasourceType: determines query shape β SQL panels use sqlQuery string; metric/event panels use queries arraypanels is a map keyed by panel ID; each panel contains a chart objectlayouts controls responsive grid placement; omit or set overrideLayouts: true to auto-arrangereferences/openapi.swagger.json definitions web_service.Dashboard, web_service.Panel, web_service.Chart, common.Query for complete field listsProject management
sentio project listsentio project get / sentio project create --owner --name --type sentio --visibility private sentio project delete / sentio, subgraph, actionProcessor management
sentio processor status --project / sentio processor source --project / sentio processor activate-pending --project / sentio processor pause --project / --reason "maintenance" -y sentio processor resume --project / sentio processor stop --project / sentio processor logs --project / --limit 100 sentio processor logs --project / -f --log-type execution --level ERROR --query "timeout"Price
sentio price get --coin ETH or --symbol ETH or --address 0x... --chain 1sentio price get --coin ETH --timestamp sentio price batch --file prices.yamlsentio price coinssentio price check-latestSimulation
sentio simulation run --project / --file sim.yaml sentio simulation run-bundle --project / --chain-id --file bundle.yaml sentio simulation list --project / sentio simulation get --project / sentio simulation bundle --project / sentio simulation trace --project / Notes
--api-key or use saved credentials from sentio login.--token for bearer token auth.--json or --yaml for machine-readable output.--project / to target a project, or --owner + --name separately, or --project-id .--async then fetch with --result .$startTime/$endTime placeholders.references/openapi.swagger.json contains the full Sentio REST API spec β read it when constructing dashboard JSON payloads, debugging CLI calls, or building custom integrations. Key definitions for dashboards: web_service.ImportDashboardRequest, web_service.Dashboard, web_service.Panel, web_service.Chart, common.Query.βοΈ Configuration
1. Check login status: npx @sentio/cli@latest login --status
2. If not logged in, ask the user for api key and run: npx @sentio/cli@latest login --api-key
π Tips & Best Practices
--api-key or use saved credentials from sentio login.--token for bearer token auth.--json or --yaml for machine-readable output.--project / to target a project, or --owner + --name separately, or --project-id .--async then fetch with --result .$startTime/$endTime placeholders.references/openapi.swagger.json contains the full Sentio REST API spec β read it when constructing dashboard JSON payloads, debugging CLI calls, or building custom integrations. Key definitions for dashboards: web_service.ImportDashboardRequest, web_service.Dashboard, web_service.Panel, web_service.Chart, common.Query.