canvas – skill Thiết kế & UI cho agent AI
Lấy khóa học và bài tập từ Canvas LMS qua API token.
Cài skill canvas bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/canvas-c56c0.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /canvas – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/canvas-c56c0.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $canvas – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/canvas-c56c0.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /canvas – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/canvas-c56c0.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /canvas – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Canvas LMS — Course & Assignment Access
Read-only access to Canvas LMS for listing courses and assignments.
Scripts
scripts/canvas_api.py— Python CLI for Canvas API calls
Setup
1. Log in to your Canvas instance in a browser
2. Go to Account → Settings (click your profile icon, then Settings)
3. Scroll to Approved Integrations and click + New Access Token
4. Name the token (e.g., "Hermes Agent"), set an optional expiry, and click Generate Token
5. Copy the token and add to ${HERMES_HOME:-~/.hermes}/.env:
CANVAS_API_TOKEN=your_token_here
CANVAS_BASE_URL=https://yourschool.instructure.comThe base URL is whatever appears in your browser when you're logged into Canvas (no trailing slash).
Usage
CANVAS="python $HERMES_HOME/skills/productivity/canvas/scripts/canvas_api.py"
# List all active courses
$CANVAS list_courses --enrollment-state active
# List all courses (any state)
$CANVAS list_courses
# List assignments for a specific course
$CANVAS list_assignments 12345
# List assignments ordered by due date
$CANVAS list_assignments 12345 --order-by due_atOutput Format
list_courses returns:
[{"id": 12345, "name": "Intro to CS", "course_code": "CS101", "workflow_state": "available", "start_at": "...", "end_at": "..."}]list_assignments returns:
[{"id": 67890, "name": "Homework 1", "due_at": "2025-02-15T23:59:00Z", "points_possible": 100, "submission_types": ["online_upload"], "html_url": "...", "description": "...", "course_id": 12345}]Note: Assignment descriptions are truncated to 500 characters. The html_url field links to the full assignment page in Canvas.
API Reference (curl)
# List courses
curl -s -H "Authorization: Bearer $CANVAS_API_TOKEN" \
"$CANVAS_BASE_URL/api/v1/courses?enrollment_state=active&per_page=10"
# List assignments for a course
curl -s -H "Authorization: Bearer $CANVAS_API_TOKEN" \
"$CANVAS_BASE_URL/api/v1/courses/COURSE_ID/assignments?per_page=10&order_by=due_at"Canvas uses Link headers for pagination. The Python script handles pagination automatically.
Rules
- This skill is read-only — it only fetches data, never modifies courses or assignments
- On first use, verify auth by running
$CANVAS list_courses— if it fails with 401, guide the user through setup - Canvas rate-limits to ~700 requests per 10 minutes; check
X-Rate-Limit-Remainingheader if hitting limits
Troubleshooting
| Problem | Fix |
|---------|-----|
| 401 Unauthorized | Token invalid or expired — regenerate in Canvas Settings |
| 403 Forbidden | Token lacks permission for this course |
| Empty course list | Try --enrollment-state active or omit the flag to see all states |
| Wrong institution | Verify CANVAS_BASE_URL matches the URL in your browser |
| Timeout errors | Check network connectivity to your Canvas instance |
Skill liên quan
- brand-guidelines – Khi người dùng muốn áp dụng, ghi lại hoặc thực thi hướng dẫn thương hiệu cho bất kỳ sản…
- slack-gif-creator – Bộ công cụ tạo GIF động tối ưu cho Slack, có trình kiểm tra ràng buộc kích thước và các…
- android-jetpack-compose-expert – Hướng dẫn chuyên sâu xây dựng giao diện Android hiện đại với Jetpack Compose, gồm quản…
- android-ui-journey-testing – Kiểm thử hành trình giao diện Android theo đặc tả XML, thực thi từng bước tương tác, xác…
- android_ui_verification – Kiểm thử và xác minh giao diện đầu cuối tự động trên Android Emulator bằng ADB.
- theme-factory – Bộ công cụ tạo kiểu cho artifact bằng theme. Các artifact có thể là slide, tài liệu, báo…
- claude-design – Thiết kế các artifact HTML dùng một lần (landing page, slide deck, prototype).
- performance-optimization – Tối ưu hiệu năng ứng dụng ở frontend, backend, truy vấn và cơ sở dữ liệu. Dùng khi có…