← Back to Skills Marketplace
m0nkmaster

ClassCharts

by Rob MacDonald · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ⚠ suspicious
257
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install classcharts
Description
Query and interact with ClassCharts (UK education classroom management) via the classcharts-api JS library. Use when the user mentions ClassCharts, school be...
README (SKILL.md)

ClassCharts API (JavaScript/TypeScript)

ClassCharts is a UK education classroom management platform. This skill uses the unofficial classcharts-api JS library to fetch homework, behaviour, timetable, detentions, attendance, announcements, badges, and more. Supports both Parent and Student authentication.

Important: The API is unofficial. Never hardcode credentials in prompts, logs, or committed code. Use environment variables or a secure secret store.

Installation

npm install classcharts-api

Requirements: Node.js 20+ or Deno

Authentication

Two client types with different login flows:

Parent Client

Parent logs in with email and password. Access to all linked pupils.

import { ParentClient } from "classcharts-api";

const client = new ParentClient(
  process.env.CLASSCHARTS_EMAIL!,
  process.env.CLASSCHARTS_PASSWORD!,
);
await client.login();

// Defaults to first pupil; switch with selectPupil
const pupils = client.pupils; // or await client.getPupils()
client.selectPupil(pupils[1].id); // if multiple children

Student Client

Student logs in with ClassCharts code and date of birth.

import { StudentClient } from "classcharts-api";

// Date of birth MUST be DD/MM/YYYY
const client = new StudentClient(
  process.env.CLASSCHARTS_CODE!, // e.g. "ABCD1234"
  "01/01/2010",
);
await client.login();

Date formats

Use case Format Example
API options (from, to, date) YYYY-MM-DD "2024-03-10"
Student date of birth (login) DD/MM/YYYY "01/01/2010"
getStudentCode dateOfBirth YYYY-MM-DD "2010-01-01"

Shared methods (Parent & Student)

All methods require await client.login() first. Session auto-renews after 3 minutes.

Method Options Description
getStudentInfo() Student profile and metadata
getActivity({ from, to, last_id? }) Dates YYYY-MM-DD, optional pagination Activity feed (paginated)
getFullActivity({ from, to }) Dates YYYY-MM-DD Activity between dates (auto-paginates)
getBehaviour({ from?, to? }) Dates YYYY-MM-DD Behaviour points timeline and reasons
getHomeworks({ from?, to?, displayDate? }) Dates, displayDate: "due_date" | "issue_date" Homework list
getLessons({ date }) date: YYYY-MM-DD Timetable for a specific date
getBadges() Earned badges
getAnnouncements() School announcements
getDetentions() Detentions
getAttendance({ from, to }) Dates YYYY-MM-DD Attendance records
getPupilFields() Custom pupil fields/stats

Parent-only methods

Method Description
getPupils() List pupils linked to parent account
selectPupil(pupilId) Set active pupil for subsequent requests
changePassword(current, new) Change parent account password

Student-only methods

Method Description
getRewards() Rewards shop items and balance
purchaseReward(itemId) Purchase item from rewards shop
getStudentCode({ dateOfBirth }) Get student code (dateOfBirth: YYYY-MM-DD)

Quick examples

// Homework for date range
const homeworks = await client.getHomeworks({
  from: "2024-03-01",
  to: "2024-03-31",
  displayDate: "due_date",
});

// Today's timetable
const today = new Date().toISOString().slice(0, 10); // YYYY-MM-DD
const lessons = await client.getLessons({ date: today });

// Behaviour summary
const behaviour = await client.getBehaviour({
  from: "2024-01-01",
  to: "2024-03-10",
});

// Student: list rewards shop and purchase
const rewards = await client.getRewards();
const purchase = await client.purchaseReward(rewards.data[0].id);

Response shape

Responses follow ClassChartsResponse\x3CData, Meta>:

{
  success: 1,
  data: T,      // Array or object depending on endpoint
  meta: M,      // Session ID, dates, counts, etc.
  error?: string
}

Errors throw if success === 0.

When to use this skill

  • User asks about ClassCharts, school homework, behaviour points, timetable, detentions, attendance, or rewards.
  • User wants to script, integrate, or automate ClassCharts data.
  • User mentions parent/student portal in the context of UK schools and ClassCharts.

Links

Usage Guidance
This skill appears functionally coherent for interacting with ClassCharts, but the registry metadata omitted the environment variables and install info that SKILL.md expects. Before installing or using it: 1) Confirm the skill's source and maintainers (check the linked GitHub repo and npm package owner). 2) Inspect the npm package for postinstall scripts or unexpected dependencies (run npm audit / review package contents). 3) Do not paste credentials into prompts; use environment variables or a secret manager. 4) Clarify how student DOB is supplied and whether the platform will store credentials — prefer short-lived or least-privilege accounts if possible. 5) Ask the skill author/maintainer to update the metadata to declare required env vars and install instructions so the platform can enforce least-privilege and make the integration auditable.
Capability Tags
cryptocan-make-purchases
Capability Assessment
Purpose & Capability
SKILL.md describes using the unofficial classcharts-api JS library to access homework, behaviour, timetable, etc., which aligns with the skill name and description. However the registry metadata lists no required environment variables or primary credential while SKILL.md explicitly expects CLASSCHARTS_EMAIL, CLASSCHARTS_PASSWORD, and CLASSCHARTS_CODE — a manifest mismatch.
Instruction Scope
Runtime instructions are narrowly scoped to authenticating and calling the classcharts-api library. They don't instruct reading unrelated system files or exfiltrating data to other endpoints. The doc explicitly warns not to hardcode credentials.
Install Mechanism
There is no formal install spec in the registry, but SKILL.md directs 'npm install classcharts-api'. Using a published npm library is expected for this task, but the skill should declare its install behaviour in metadata. Verify the npm package and its repository (audit for postinstall scripts / suspicious dependencies) before running installs.
Credentials
Requested secrets (parent email/password; student code) are proportional to the stated purpose. But the registry metadata fails to declare these environment variables or a primary credential, and SKILL.md does not standardise how the student date-of-birth should be provided (it is required for student login). The omission in metadata makes it unclear what the platform will provide or store, increasing risk of misconfiguration or accidental credential exposure.
Persistence & Privilege
The skill is not always-enabled, has no OS restrictions, and does not request system config paths or modify other skills. Autonomous invocation is allowed (platform default) but is not combined with high privileges here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install classcharts
  3. After installation, invoke the skill by name or use /classcharts
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
- Added environment variable requirements (CLASSCHARTS_EMAIL, CLASSCHARTS_PASSWORD, CLASSCHARTS_CODE) and install instructions to metadata. - Specified Node.js and npm as requirements. - No changes to functionality or API usage.
v1.0.0
ClassCharts skill initial release: - Enables querying and interaction with ClassCharts for UK education management. - Supports both Parent and Student authentication methods using the classcharts-api JS library. - Fetches homework, behaviour, timetable, detentions, attendance, announcements, rewards, and badges. - Provides method guides, example usage, and response structure details. - Includes security notes regarding credential handling.
Metadata
Slug classcharts
Version 1.0.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is ClassCharts?

Query and interact with ClassCharts (UK education classroom management) via the classcharts-api JS library. Use when the user mentions ClassCharts, school be... It is an AI Agent Skill for Claude Code / OpenClaw, with 257 downloads so far.

How do I install ClassCharts?

Run "/install classcharts" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is ClassCharts free?

Yes, ClassCharts is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does ClassCharts support?

ClassCharts is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created ClassCharts?

It is built and maintained by Rob MacDonald (@m0nkmaster); the current version is v1.0.1.

💬 Comments