Install
$ agentstack add skill-m0nkmaster-agent-skills-classdojo ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
ClassDojo Parent Portal
This skill queries the ClassDojo parent portal API.
⚡ QUICK START (For AI)
When user asks ANYTHING about ClassDojo:
- Run auth check:
cd ~/.cursor/skills/classdojo && python3 scripts/client.py session-check - If NOT authenticated: Ask user for email/password, then run:
cd ~/.cursor/skills/classdojo && python3 scripts/cli_login.py --email "EMAIL" --password "PASSWORD"(add--code "123456"if they were emailed a 6-digit OTP — see Email OTP (new location) below) - Make API call: Use commands from the table below
- Parse JSON and respond conversationally
CRITICAL: You (the AI) run these commands. Python3 IS installed. Do NOT ask the user to run commands.
CRITICAL: How to Handle Any Request
For EVERY ClassDojo request, follow this exact workflow:
1. Check Auth Status (ALWAYS DO THIS FIRST)
Execute:
cd ~/.cursor/skills/classdojo && python3 scripts/client.py session-check
Interpret the result:
- Output contains
"authenticated": true→ Go to step 3 - Output contains
"authenticated": falseor any error → Go to step 2
2. Login If Needed
Say to user: "I need your ClassDojo email and password to access your account."
When user provides credentials, execute (replace with actual values):
cd ~/.cursor/skills/classdojo && python3 scripts/cli_login.py --email "USER_PROVIDED_EMAIL" --password "USER_PROVIDED_PASSWORD"
If successful: "Logged in. Session saved..." appears → Go to step 3 If failed: Tell user credentials didn't work, ask them to try again If stderr mentions the 6-digit code / HTTP 401 after correct password: ClassDojo emailed an OTP — ask for the code, then run the same command with --code "THE_CODE" (or set CLASSDOJO_OTP_CODE)
Email OTP (new location / device)
- Password step:
POST https://home.classdojo.com/api/session?duration=longwith JSON
{"login":"","password":"","resumeAddClassFlow":false} When a code is required, this returns 401 (response may include rate-limit headers such as remaining-attempts, retry-after).
- OTP step:
POST https://teach.classdojo.com/api/session?duration=longwith JSON
{"login":"","password":"","code":""} On success (200), session cookies are issued like a normal login.
The parent portal UI strings for this flow live in home.classdojo.com locale pack packages-one-time-codes (e.g. “Enter the 6-digit code”, “We sent a one-time code to your email address”). Optional account MFA is a separate concept (GET /api/parent/{id}/mfa); this OTP is not the same as enabled TOTP MFA.
CLI: python3 scripts/cli_login.py --email "…" --password "…" --code "123456"
3. Make API Request
Execute the appropriate command from the table below.
API Commands Reference
| User Request | Exact Command to Execute | |-------------|--------------------------| | "Any messages?" | cd ~/.cursor/skills/classdojo && python3 scripts/client.py "/parent/5ec3b7790dfcbc1819952ec4/message-thread/page?limit=20" | | "What's new?" / "Class stories" | cd ~/.cursor/skills/classdojo && python3 scripts/client.py "/storyFeed?withStudentCommentsAndLikes=true&withSyntheticPosts=true" | | "How is Alice?" | cd ~/.cursor/skills/classdojo && python3 scripts/client.py "/storyFeed?withStudentCommentsAndLikes=true&withSyntheticPosts=true&studentId=5e7c84d75f8f36d133eddf0e" | | "How is Bob?" | cd ~/.cursor/skills/classdojo && python3 scripts/client.py "/storyFeed?withStudentCommentsAndLikes=true&withSyntheticPosts=true&studentId=5eec913e1634abe97e805598" | | "Calendar" / "Events" | cd ~/.cursor/skills/classdojo && python3 scripts/client.py "/parentCalendarEvent?hidePastEvents=false" | | "Alice's info" | cd ~/.cursor/skills/classdojo && python3 scripts/client.py "/parent/5ec3b7790dfcbc1819952ec4/student/5e7c84d75f8f36d133eddf0e" | | "Dashboard" | cd ~/.cursor/skills/classdojo && python3 scripts/client.py "/parent/5ec3b7790dfcbc1819952ec4/dashboard" |
Response Format
Parse the JSON output and respond like:
- Messages: "New message from [Name] ([time]): '[preview]'"
- Stories: "[Teacher] posted: '[content]' ([X] photos, [Y] likes)"
- Calendar: "Upcoming: [Event] - [Date] at [Time]"
Error Handling
| Error | Action | |-------|--------| | "Session expired" or 401 | Go back to step 2, login again (use --code if ClassDojo emails an OTP), then retry step 3 | | "No session found" | Go to step 2 and login | | Empty JSON/array | "No [items] found right now" | | Any HTTP error | "ClassDojo is temporarily unavailable" |
Important Notes
- Python3 is installed - always use
python3in commands - You execute the commands - don't ask the user to run them
- Never echo passwords - use them in commands but don't show in responses
- Session persists - after login, the session file is created automatically
- Always check auth first - never skip step 1
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: m0nkmaster
- Source: m0nkmaster/agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.