✓ Verified
🌐 Web Scrapers
✓ Enhanced Data
Iserv
HTTP client for IServ school platforms.
- Rating
- 3.9 (452 reviews)
- Downloads
- 703 downloads
- Version
- 1.0.0
Overview
HTTP client for IServ school platforms.
Complete Documentation
View Source →
IServ (school platform)
This skill uses an HTTP client (no browser automation) to log in and call IServ endpoints.
Credentials / security
- Do NOT hardcode credentials.
- Provide credentials via environment variables.
ISERV_BASE_URL(e.g.https://grabbe-dt.de)ISERV_USERISERV_PASS
- set
ISERV_PROFILE=or pass--profile - provide
ISERV_,_BASE_URL ISERV_,_USER ISERV__PASS
Commands
bash
cd skills/iserv/scripts
# unread inbox count
./iserv.py mail-unread
# last 3 mails (IMAP)
./iserv.py mail-last --n 3
# upcoming calendar events (JSON)
./iserv.py calendar-upcoming
# list files (JSON)
./iserv.py files-list --path "/" # root
./iserv.py files-list --path "/Files" # typical user file area
# search files/folders recursively by substring
./iserv.py files-search --query "bio" --start-dir "/Files" --max-depth 6
# download a file (best-effort across IServ versions)
./iserv.py files-download --path "/Files/foo.pdf" --out-dir ./downloads
# upload a file (prefers FS Dropzone-style chunked upload; falls back to legacy form upload)
./iserv.py files-upload --file ./foo.pdf --dest-dir "/Files"
# optionally tune chunk size (bytes)
./iserv.py files-upload --file ./foo.pdf --dest-dir "/Files" --chunk-size 8388608
# create folder (best-effort; depends on IServ version)
./iserv.py files-mkdir --path "/Dokumente/Neu"
# rename/move (best-effort)
./iserv.py files-rename --src "/Dokumente/Alt.txt" --dest "/Dokumente/Neu.txt"
# delete (best-effort; USE WITH CARE)
./iserv.py files-delete --path "/Dokumente/Neu.txt"
# messenger: list chats / conversations
./iserv.py messenger-chats
# messenger: fetch messages for a chat
./iserv.py messenger-messages --chat-id <ID>
# messenger: send message
./iserv.py messenger-send --chat-id <ID> --text "Hello"
# list exercises (best-effort HTML scrape)
./iserv.py exercise-list --limit 50
# view one exercise + list attachments (optionally download them)
./iserv.py exercise-detail --id 123
./iserv.py exercise-detail --id 123 --download-dir ./downloads
# attempt to submit an exercise file (best-effort; depends on IServ version)
./iserv.py exercise-submit --id 123 --file ./solution.pdf --comment "Abgabe"
Notes / next steps
- Exercises: listing/details/submission are implemented via HTML scraping.
on the exercise page and posts multipart), which is more robust than guessing an internal upload API.
If it still fails on a specific IServ instance, capture:
- the HTML of the exercise detail page (after login)
- response status + redirect URL
- Files: list/download/upload + mkdir/rename/delete are implemented as best-effort across IServ versions.
Ideas to extend further:
- richer exercise parsing (due dates, teacher, description)
- announcements/news
- messenger notifications (currently experimental)
- robust file search, move/copy, and recursive folder download
/iserv/js/fos_js_routes.js; some instances also use /iserv/js/assets/fos_js_routes*.js).
Installation
Terminal bash
openclaw install iserv
Copied!
💻Code Examples
example.sh
cd skills/iserv/scripts
# unread inbox count
./iserv.py mail-unread
# last 3 mails (IMAP)
./iserv.py mail-last --n 3
# upcoming calendar events (JSON)
./iserv.py calendar-upcoming
# list files (JSON)
./iserv.py files-list --path "/" # root
./iserv.py files-list --path "/Files" # typical user file area
# search files/folders recursively by substring
./iserv.py files-search --query "bio" --start-dir "/Files" --max-depth 6
# download a file (best-effort across IServ versions)
./iserv.py files-download --path "/Files/foo.pdf" --out-dir ./downloads
# upload a file (prefers FS Dropzone-style chunked upload; falls back to legacy form upload)
./iserv.py files-upload --file ./foo.pdf --dest-dir "/Files"
# optionally tune chunk size (bytes)
./iserv.py files-upload --file ./foo.pdf --dest-dir "/Files" --chunk-size 8388608
# create folder (best-effort; depends on IServ version)
./iserv.py files-mkdir --path "/Dokumente/Neu"
# rename/move (best-effort)
./iserv.py files-rename --src "/Dokumente/Alt.txt" --dest "/Dokumente/Neu.txt"
# delete (best-effort; USE WITH CARE)
./iserv.py files-delete --path "/Dokumente/Neu.txt"
# messenger: list chats / conversations
./iserv.py messenger-chats
# messenger: fetch messages for a chat
./iserv.py messenger-messages --chat-id <ID>
# messenger: send message
./iserv.py messenger-send --chat-id <ID> --text "Hello"
# list exercises (best-effort HTML scrape)
./iserv.py exercise-list --limit 50
# view one exercise + list attachments (optionally download them)
./iserv.py exercise-detail --id 123
./iserv.py exercise-detail --id 123 --download-dir ./downloads
# attempt to submit an exercise file (best-effort; depends on IServ version)
./iserv.py exercise-submit --id 123 --file ./solution.pdf --comment "Abgabe"Tags
#browser_and-automation
#cli
Quick Info
Category Web Scrapers
Model Claude 3.5
Complexity One-Click
Author finnbusse
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
Ready to Install?
Get started with this skill in seconds
openclaw install iserv
Related Skills
✓ Verified
💻 Development
4claw
4claw — a moderated imageboard for AI agents.
🧠 Claude-Ready
)}
★ 4.4 (118)
↓ 4,990
v1.0.0
✓ Verified
💻 Development
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
🧠 Claude-Ready
)}
★ 4.3 (89)
↓ 4,621
v1.0.0
✓ Verified
💻 Development
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
🧠 Claude-Ready
)}
★ 4.7 (88)
↓ 1,625
v1.0.0
✓ Verified
💻 Development
Adversarial Prompting
Adversarial analysis to critique, fix.
🧠 Claude-Ready
)}
★ 4.6 (372)
↓ 28,222
v1.0.0