atris/skills/apps/SKILL.md
View, manage, and trigger Atris apps. Use when user asks about their apps, app status, runs, data, or wants to trigger an app.
npx skillsauth add atrislabs/atris appsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
View and manage your Atris apps — status, runs, data, secrets, members.
TOKEN=$(node -e "console.log(require('$HOME/.atris/credentials.json').token)" 2>/dev/null \
|| python3 -c "import json,os; print(json.load(open(os.path.expanduser('~/.atris/credentials.json')))['token'])" 2>/dev/null)
if [ -z "$TOKEN" ]; then echo "Not logged in. Run: atris login"; exit 1; fi
echo "Ready."
Base URL: https://api.atris.ai/api/apps
Auth: -H "Authorization: Bearer $TOKEN"
curl -s "https://api.atris.ai/api/apps" \
-H "Authorization: Bearer $TOKEN"
Returns all apps you own with id, name, slug, description, template, status.
# Template apps only
curl -s "https://api.atris.ai/api/apps?filter=template" \
-H "Authorization: Bearer $TOKEN"
# Paid apps
curl -s "https://api.atris.ai/api/apps?filter=paid" \
-H "Authorization: Bearer $TOKEN"
# Free apps
curl -s "https://api.atris.ai/api/apps?filter=free" \
-H "Authorization: Bearer $TOKEN"
curl -s "https://api.atris.ai/api/apps/{slug}/status" \
-H "Authorization: Bearer $TOKEN"
Returns: last run, next run, health, active members.
curl -s "https://api.atris.ai/api/apps/{slug}/runs?limit=10" \
-H "Authorization: Bearer $TOKEN"
curl -s "https://api.atris.ai/api/apps/{slug}/runs/{run_id}" \
-H "Authorization: Bearer $TOKEN"
curl -s "https://api.atris.ai/api/apps/{slug}/data" \
-H "Authorization: Bearer $TOKEN"
curl -s "https://api.atris.ai/api/apps/{slug}/data/{collection}" \
-H "Authorization: Bearer $TOKEN"
curl -s -X POST "https://api.atris.ai/api/apps/{slug}/ingest" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"collection": "leads", "data": {"name": "Acme", "score": 85}}'
curl -s "https://api.atris.ai/api/apps/{slug}/secrets" \
-H "Authorization: Bearer $TOKEN"
Returns key names and where they're stored:
"storage_tier": "cloud" — encrypted in Atris vault"storage_tier": "local" — on your machine at ~/.atris/secrets/{slug}/curl -s -X PUT "https://api.atris.ai/api/apps/{slug}/secrets/{key}" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"value": "sk-secret-value"}'
curl -s -X POST "https://api.atris.ai/api/apps/{slug}/secrets/{key}/register-local" \
-H "Authorization: Bearer $TOKEN"
No value sent. Just tells the web UI "this key exists on my machine."
curl -s -X DELETE "https://api.atris.ai/api/apps/{slug}/secrets/{key}" \
-H "Authorization: Bearer $TOKEN"
curl -s "https://api.atris.ai/api/apps/{slug}/members" \
-H "Authorization: Bearer $TOKEN"
curl -s -X POST "https://api.atris.ai/api/apps/{slug}/members" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"agent_id": "AGENT_ID", "role": "operator"}'
curl -s -X DELETE "https://api.atris.ai/api/apps/{slug}/members/{agent_id}" \
-H "Authorization: Bearer $TOKEN"
curl -s -X POST "https://api.atris.ai/api/apps/{slug}/trigger" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"trigger_type": "manual"}'
curl -s "https://api.atris.ai/api/apps/{slug}/manifest"
No auth needed. Returns name, description, required secrets, schedule.
curl -s -X POST "https://api.atris.ai/api/apps/{slug}/install" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/appsGET /api/apps/{slug}/statusGET /api/apps/{slug}/runs?limit=5GET /api/apps/{slug}/secretsPOST /api/apps/{slug}/triggerGET /api/apps/{slug}/status (wait for completion)GET /api/apps/{slug}/runs?limit=1TOKEN=$(node -e "console.log(require('$HOME/.atris/credentials.json').token)")
# List all my apps
curl -s "https://api.atris.ai/api/apps" -H "Authorization: Bearer $TOKEN"
# App status
curl -s "https://api.atris.ai/api/apps/SLUG/status" -H "Authorization: Bearer $TOKEN"
# Recent runs
curl -s "https://api.atris.ai/api/apps/SLUG/runs?limit=5" -H "Authorization: Bearer $TOKEN"
# Trigger a run
curl -s -X POST "https://api.atris.ai/api/apps/SLUG/trigger" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"trigger_type":"manual"}'
# Read app data
curl -s "https://api.atris.ai/api/apps/SLUG/data" -H "Authorization: Bearer $TOKEN"
# List secrets (with storage tier)
curl -s "https://api.atris.ai/api/apps/SLUG/secrets" -H "Authorization: Bearer $TOKEN"
development
Wake a team member by name — 'gm <member>' or 'wake up <member>' — and run ONE closed-loop tick: boot, inbox, claim, one bounded slice, verify, commit+push, proof, receipt. Optionally dispatch the build to an engine (codex/cursor/devin). Triggers on: gm, good morning, wake up <member>, wake the team, run a tick as <member>.
development
Dispatch coding work to an installed terminal agent — Codex, Cursor, or Devin — as an interchangeable worker engine. Claude orchestrates: writes the bounded prompt, the engine builds, Claude verifies and lands. Triggers on: use codex, use cursor, use devin, engine, dispatch to, worker agent, second opinion build.
development
Live RL tuner for skills. Watches skill invocations, reads user reaction, proposes targeted SKILL.md overlay edits, requires explicit approval, writes scorecards. The in-session half of the skill-RL loop (Path B). Triggers on: tune, sharpen, skill feedback, that was shit, that was great, make X better.
development
Run one RL improvement tick on the workspace via POST /api/improve. Ships one verifiable change, scores it, writes the scorecard. The thing you pay for. Triggers on: improve, make this better, ship one thing, run a tick, get smarter.