Skip to main content

SkillKit for NUS

SkillKit for NUS (sk4n) is a small toolkit for everyday NUS student tasks. It can help you look through Canvas, search NUSMods, browse TalentConnect jobs, and give supported AI assistants a reliable way to use the same tools.

What can it do?

  • Canvas: sign in with NUS SSO; ckeck courses, read assignments, upcoming items, files, announcements, modules, pages, people, and groups.
  • NUSMods: search courses, view course details and comments, and keep a local timetable using NUSMods share links. No login is needed.
  • TalentConnect: search jobs and companies, including information available after signing in with NUS SSO.
  • Agent skills: install ready-made skills for ChatGPT Work / Codex, GitHub Copilot, Claude Code, and Google Antigravity.

Before you use it

This is an unofficial, independent project. It is not affiliated with, endorsed by, or supported by the National University of Singapore (NUS), Instructure/Canvas, NUSMods, Kinobi/TalentConnect, or any supported AI platform.

It is intended as a personal study and workflow aid. Follow NUS policies and the terms, rules, and acceptable-use requirements of every platform you access. AI and CLI output can be incomplete or wrong, so check important information against the original source. The software comes with no warranty of accuracy, reliability, or fitness for a particular purpose; see the MIT License.

Install

Not computing major or don't want to struggle with installation? You can try to ask your agent help me install https://github.com/hykzr/sk4n/ and let it do everything in this step for you

You need to install Python 3.11 or newer with pip first.

python -m pip install sk4n

If this command fail because the system cannot find python command, try replacing python with py (for Windows), or python3 (on MacOS or Linux)

The one sk4n installation gives you four commands:

sk4n
canvas
nusmods
talent-connect

One extra setup step for Canvas and TalentConnect

Canvas and TalentConnect use a small automated browser (chromium) to handle NUS SSO. Set it up once after installing:

sk4n browser install chromium

NUSMods does not need this browser or an NUS login.

One extra setup step for AI assistants

Sometimes an AI assistant needs to look at a Canvas or TalentConnect page that the regular commands cannot fully read. For those cases, sk4n uses playwright-cli, a browser tool made for coding agents.

playwright-cli needs Node.js 18 or newer. After installing Node.js, run:

npm install -g @playwright/cli@latest
playwright-cli install-browser

This is separate from the Chromium setup above: that browser handles your NUS login, while this one lets your AI assistant inspect a signed-in page when needed.

sk4n also comes with a doctor command to help you check if everything is correctly installed:

sk4n doctor

Use it with an AI assistant

The package includes optional agent skills for Canvas, NUSMods, and TalentConnect. To install them for all supported assistants on your computer:

sk4n skills install --agents all --scope user
sk4n skills status --agents all --scope all

You can choose one assistant instead, for example --agents codex. Installing a skill helps the assistant call the CLI consistently, but it does not make AI answers automatically correct. Check important dates, requirements, course information, and job details against the original platform.

CLI examples

Find courses with NUSMods

nusmods search "machine learning"
nusmods course CS1010

You can also import an existing timetable share link:

nusmods schedule import 'https://nusmods.com/timetable/sem-1/share?...'

More NUSMods examples

Check Canvas

The first login opens a browser window for NUS SSO:

canvas auth login
canvas list
canvas todo
canvas upcoming

Once a course has been synced, you can inspect its saved content:

canvas course CS1010 assignments list
canvas course CS1010 announcements list

More Canvas examples

Search TalentConnect

talent-connect auth login
talent-connect fetch --query engineer --max-jobs 20
talent-connect fetch --saved

For a public search that does not open the NUS login:

talent-connect fetch --no-login --query engineer --max-jobs 20

More TalentConnect examples

Check the NUS academic week

sk4n calendar
sk4n calendar --date 2026-08-14

This uses public NUSMods calendar data and does not need an NUS login.

Where is my data?

Run this to see the exact folders used on your computer:

sk4n paths

Canvas and TalentConnect save browser session information so you do not need to sign in for every command. Treat those session files like login credentials: do not share or upload them.

To forget a saved login without signing your other browsers out of NUS SSO:

canvas auth logout
talent-connect auth logout

If the command is not found

First, close and reopen your terminal after installing. If the command is still missing, Python's Scripts folder may not be on your PATH.

Contribute

This section is for contributors working from a repository clone. Ordinary users do not need any of these tools.

uv workflow

This repo uses uv to manage venv. see uv install

uv sync
uv run pytest -q
uv run ruff --config pyproject.toml check .
uv run pyright
uv run python scripts/generate_skill_references.py --check
uv run pip-audit --strict --progress-spinner off .

Optional just shortcuts

If just is installed, these shortcuts are available:

just format
just check # same as test + lint + check references
just build

Neither just nor uv is needed by people who install sk4n from PyPI.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sk4n-0.1.0.tar.gz (225.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sk4n-0.1.0-py3-none-any.whl (169.9 kB view details)

Uploaded Python 3

File details

Details for the file sk4n-0.1.0.tar.gz.

File metadata

  • Download URL: sk4n-0.1.0.tar.gz
  • Upload date:
  • Size: 225.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sk4n-0.1.0.tar.gz
Algorithm Hash digest
SHA256 31be4e0cc07cb94e0e43284a6bc4eb2e6cec002cc524d061630bfe3dad705e3b
MD5 7b0958339815f51e96f338be0a0c7ba8
BLAKE2b-256 b8db5047c4cdbdc8a5b024235ba959548109d1b9ed4fb8a0aab66c7361ebabdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for sk4n-0.1.0.tar.gz:

Publisher: release.yml on hykzr/sk4n

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sk4n-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sk4n-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 169.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sk4n-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 365947b5f7aa9cecb5f93c38d8c2bbc80463895dcc448d491ee69ba08e2a28e9
MD5 bcf0b19feac7a9a4da5b7c45c5e9fba1
BLAKE2b-256 8a0602e7643f8f9dcb8c9c65eb4ec34e33ae394196128401f517eb4c90063648

See more details on using hashes here.

Provenance

The following attestation bundles were made for sk4n-0.1.0-py3-none-any.whl:

Publisher: release.yml on hykzr/sk4n

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page