← Back to Skills Marketplace
podberezovk

BilimClass

by podberezovk · GitHub ↗ · v1.1.0 · MIT-0
cross-platform ⚠ suspicious
92
Downloads
1
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install bilimclass
Description
Access BilimClass school platform (Kazakhstan) for schedule, homework, grades, and diary via API. Triggers on schedule/raspisanie/расписание, homework/domash...
README (SKILL.md)

BilimClass — School Schedule, Homework & Grades

Access BilimClass API for Kazakhstan school data. Supports schedule, homework, and quarterly/yearly grades.

Setup

Two tokens required in ~/.openclaw/.env.json:

  • bilimclass.token — main JWT from localStorage.token (RS256, valid ~1 year). Used for schedule and subject names.
  • bilimclass.journalToken — journal JWT from API headers on grades page (HS512, expires ~2 weeks). Used for grades only.

Both expire — token annually, journalToken biweekly. To refresh journalToken:

  1. Open bilimclass.kz → grades section
  2. F12 → Network → find request to journal-service.bilimclass.kz/diary
  3. Copy the Authorization: Bearer ... header value

To refresh main token: browser console → localStorage.token

Required config fields in .env.json:

{
  "bilimclass": {
    "token": "\x3CYOUR_TOKEN>",
    "journalToken": "\x3CYOUR_JOURNAL_TOKEN>",
    "schoolId": "\x3CYOUR_SCHOOL_ID>",
    "eduYear": "\x3CEDUCATION_YEAR>",
    "userId": "\x3CYOUR_USER_ID>",
    "studentSchoolUuid": "\x3CYOUR_STUDENT_UUID>",
    "studentGroups": [
      {"uuid": "\x3CUUID>", "name": "Group name"},
      {"uuid": "\x3CUUID>", "name": "Group name"}
    ]
  }
}

studentGroups — all student groups for the user. The first one should be the current group for grades.

Quick Usage

python3 \x3Cskill_dir>/scripts/bilimclass.py schedule [DD.MM.YYYY]
python3 \x3Cskill_dir>/scripts/bilimclass.py diary [YYYY-MM-DD]
python3 \x3Cskill_dir>/scripts/bilimclass.py week [DD.MM.YYYY]      # Monday of that week
python3 \x3Cskill_dir>/scripts/bilimclass.py grades \x3CYYYY-MM-DD> \x3CYYYY-MM-DD>
python3 \x3Cskill_dir>/scripts/bilimclass.py quarter-report [Q3|Q4]
python3 \x3Cskill_dir>/scripts/bilimclass.py today
python3 \x3Cskill_dir>/scripts/bilimclass.py tomorrow

All output is JSON — format it nicely for the user.

Schedule Format

Each day contains:

  • date_label — display date (e.g. "06 АПРЕЛЯ")
  • schedule[] — lessons with:
    • subject.label — subject name
    • subject.subjectId — integer ID (used for grade mapping)
    • teacher — teacher full name
    • homework.body — homework text
    • time.label — time range (e.g. "08:00 - 08:40")

Diaries (Homework Detail)

Multiple student groups. The script iterates all studentGroups — it handles dedup automatically.

Grades

Grades use a separate service (journal-service.bilimclass.kz) with the journalToken.

API Endpoints

  • Schedule + subject names: https://api.bilimclass.kz/api/v4/os/clientoffice/schedule
    • Auth: Bearer {token} (main JWT)
    • Headers: X-School-Id, X-Localization: ru
  • Grades: https://journal-service.bilimclass.kz/diary
    • Auth: Bearer {journalToken} (journal JWT)
    • Headers: X-School-Id, X-Localization: ru, external: 1

How grades work

  1. Query /diary with schoolId, eduYear, userId, studentGroupUuid, date (ISO 8601)
  2. Response is {"data": {\x3CscheduleUuid>: {formattedScore, sor, soch, ...}}}
  3. Each of formattedScore/sor/soch contains:
    • mark — the score (integer)
    • markMax — maximum (usually 10, sometimes 24 for СОЧ)
    • subjectIdinteger ID for mapping to subject names
    • date, markType, comment
  4. scheduleUuid (the key) is a UUID, not the same as subjectId
  5. Subject names come from the schedule API — map via subjectId from lesson data

Grading scale (4th quarter rules)

  • 5: ≥ 87%
  • 4: ≥ 65%
  • 3: ≥ 50%
  • 2: \x3C 50%

Quarter date ranges (approximate for 2025-2026)

  • Q3: January 8 — March 22
  • Q4: March 31 — current date

Notes

  • Some subjects may have no grades in a quarter if no assessments have been given yet
  • Absent-due-to-illness marks use markType: "sick" — exclude from percentage calculations
  • Always use the first studentGroup (index 0) for current grades
  • journalToken expires ~every 2 weeks — check 401 responses and prompt user to refresh
  • When reporting grades, sort alphabetically by subject name
  • Always show: subject name, %, predicted grade, number of assessments

Notes

  • Both APIs use Bearer \x3Ctoken> style auth but with different tokens
  • Schedule API uses main token; Grades API uses journalToken
  • SUBJECT_NAMES dict is populated dynamically from schedule API — if subject name missing, show Предмет #{id} and note the gap
Usage Guidance
This skill appears to be an unofficial BilimClass client that needs your BilimClass JWTs and account IDs stored in ~/.openclaw/.env.json. That is coherent with its purpose, but do the following before installing: 1) Inspect the SKILL.md and scripts/bilimclass.py in a plain-text/hex editor for hidden (zero-width) characters or unexpected instructions (pre-scan flagged unicode control chars). 2) Only provide tokens if you trust the code — these JWTs grant access to your BilimClass account; the main token is long-lived. 3) Keep ~/.openclaw/.env.json private (file permissions 600) and ensure it is gitignored. 4) Confirm the script only calls the two BilimClass endpoints shown (api.bilimclass.kz and journal-service.bilimclass.kz) — no other external hosts should appear. 5) If unsure, run the Python script locally without installing as a skill and observe network calls (use a network monitor or sandbox) before enabling as an OpenClaw skill. 6) Ask the publisher to fix the metadata mismatch (registry vs SKILL.md) and explain why unicode control chars are present; absence of a clear explanation increases risk.
Capability Analysis
Type: OpenClaw Skill Name: bilimclass Version: 1.1.0 The bilimclass skill is a legitimate tool designed to fetch school schedule, homework, and grades from the Kazakhstan BilimClass platform. It reads user-provided API tokens from a local configuration file (~/.openclaw/.env.json) and communicates exclusively with the official service domains (api.bilimclass.kz and journal-service.bilimclass.kz). The code in bilimclass.py and the instructions in SKILL.md are consistent with the stated purpose and contain no evidence of data exfiltration, malicious execution, or prompt injection.
Capability Assessment
Purpose & Capability
Name/description, README, SKILL.md, and the script all align: the skill reads a local OpenClaw .env.json entry and calls BilimClass schedule and journal APIs. However, registry metadata (no required env/config) does not match the SKILL.md's explicit requirement of ~/.openclaw/.env.json; that mismatch should be clarified.
Instruction Scope
Instructions ask you to extract sensitive tokens (localStorage.token and an Authorization header) via browser DevTools and store them in ~/.openclaw/.env.json — this is expected for an unofficial client but is inherently sensitive. Additionally, a pre-scan flagged 'unicode-control-chars' in SKILL.md (prompt‑injection pattern), which could be used to hide or manipulate text; the presence of such characters in the runtime instructions is suspicious and should be examined (open SKILL.md in a hex/clean-text viewer).
Install Mechanism
Instruction-only skill plus a Python script; no install spec/downloading of arbitrary archives. Requires Python requests (checked at runtime). No remote install URLs or extracted archives were found.
Credentials
The skill requests a set of BilimClass-specific tokens and IDs (token, journalToken, schoolId, eduYear, userId, studentSchoolUuid, studentGroups). These are proportional to the stated purpose. Note: registry-level metadata didn't list these requirements, but SKILL.md explicitly requires the ~/.openclaw/.env.json file with these fields. Tokens are long‑lived (main token ~1 year) — storing them in a file increases risk if the file isn't protected.
Persistence & Privilege
The skill does not request always:true, does not attempt to modify other skills or system settings, and only reads a local OpenClaw .env.json. No elevated persistence or cross-skill config changes detected.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install bilimclass
  3. After installation, invoke the skill by name or use /bilimclass
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.0
**Adds support for grades and improved multi-token configuration.** - Added detailed instructions for obtaining and refreshing both main and journal tokens. - Expanded API info: now supports quarterly and yearly grades via a new grades service. - Updated environment configuration requirements to include `journalToken`, `eduYear`, `userId`, `studentSchoolUuid`, and `studentGroups`. - Added command-line usage for new grades features (e.g., `grades`, `quarter-report`). - Clarified subject mapping for grade reporting, and provided grading scale reference. - Included comprehensive setup, troubleshooting, and token expiry details.
v1.0.0
Initial release: Access BilimClass school platform data for Kazakhstan students. - Retrieve schedule, grades, homework, and diary via BilimClass API. - Supports queries in Russian or transliterated keywords (e.g., "расписание", "домашка", "дневник", "оценки"). - Handles multiple student groups and automatically deduplicates entries. - CLI scripts for quick data fetch (outputs JSON for external formatting). - Secure token setup with instructions for renewal if expired.
Metadata
Slug bilimclass
Version 1.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is BilimClass?

Access BilimClass school platform (Kazakhstan) for schedule, homework, grades, and diary via API. Triggers on schedule/raspisanie/расписание, homework/domash... It is an AI Agent Skill for Claude Code / OpenClaw, with 92 downloads so far.

How do I install BilimClass?

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

Is BilimClass free?

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

Which platforms does BilimClass support?

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

Who created BilimClass?

It is built and maintained by podberezovk (@podberezovk); the current version is v1.1.0.

💬 Comments