Aicademy CLI
Practice CKA, CKAD, and CKS exam scenarios locally — powered by KIND + Aicademy API.
Installation
Using pip
pip install aicademy
Using uv (recommended)
uv tool install aicademy
Using pipx
pipx install aicademy
Quick Start
# 1. Login to Aicademy
aicademy login
# 2. Check / install prerequisites
aicademy install-tool all --check
aicademy install-tool all
# 3. Start a practice question (creates KIND cluster automatically)
aicademy question start cka-01
# 4. Read the full task instructions in your terminal
aicademy question instructions
# 5. Solve the scenario using kubectl, helm, etc.
# 6. Verify your solution
aicademy verify
# 7. Clean up the cluster
aicademy question clear
Command Reference
| Command | Description |
|---|---|
aicademy login |
Authenticate (browser flow or direct token) |
aicademy logout |
Clear stored credentials |
aicademy auth whoami |
Verify token validity |
aicademy question start <id> |
Start question environment (creates KIND cluster) |
aicademy question instructions [id] |
Show full task instructions in terminal |
aicademy question instructions [id] --web |
Open question page in browser |
aicademy question clear [id] |
Delete KIND cluster and clear session |
aicademy verify [id] |
Run verify.sh and report result |
aicademy install-tool <name> |
Install kubectl / kind / docker / all |
aicademy install-tool <name> --check |
Check if tool is installed (no install) |
aicademy install-tool <name> --dry-run |
Preview install commands |
Prerequisites
| Tool | Purpose | Install |
|---|---|---|
| Docker | Runs KIND nodes | aicademy install-tool docker |
| kubectl | Kubernetes CLI | aicademy install-tool kubectl |
| kind | Local K8s cluster | aicademy install-tool kind |
OS Support
| OS | Package Manager |
|---|---|
| Windows | winget |
| macOS | Homebrew |
| Linux | Official shell scripts |
Categories
| Exam | Slug | Questions | Free |
|---|---|---|---|
| Certified Kubernetes Administrator | cka |
20 | 10 |
| Certified Kubernetes Application Developer | ckad |
20 | 10 |
| Certified Kubernetes Security Specialist | cks |
20 | 10 |
Development
Project Structure
The codebase is organized modularly:
aicademy_cli/main.py: The entry point and top-level Typer application.aicademy_cli/commands/: All user-facing Typer CLI groups (auth,question,tools,verify).aicademy_cli/api.py: Centralized HTTP requests and error handling.aicademy_cli/core/: Internal logic like cluster management (kind.py) and helper methods (utils.py).
Using uv
# Clone and install in dev mode
git clone https://github.com/devcrypted/aicademy-cli
cd aicademy-cli
uv sync
# Run against local dev server
AICADEMY_API_URL=http://localhost:5173 uv run aicademy login
# Run tests
uv run pytest
# Lint
uv run ruff check .
uv run mypy aicademy_cli/
Publishing to PyPI
Publishing is 100% automated via GitHub Actions (ci.yml) using Trusted Publishing.
To release a new version:
- Update the
versioninpyproject.toml(e.g.,version = "0.1.2"). - Commit and push the change to the
mainbranch. - The CI pipeline will automatically run tests, build the package, publish it to PyPI, and create a GitHub Release with the corresponding
vX.X.Xtag.
Security
- CLI tokens stored in
~/.aicademy/config.json - Tokens expire after 7 days — run
aicademy loginto renew - Question tasks and scenarios only delivered when you have an active session (anti-scraping)
- Revoke all tokens with
aicademy logout
License
MIT © Aicademy
Metadata
Release files for aicademy 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aicademy-0.5.0.tar.gz | 251.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aicademy-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 311.5 kB
Release files / aicademy-0.5.0.tar.gz
| Download URL | aicademy-0.5.0.tar.gz |
|---|---|
| Size | 251.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
24d22ce766a16001248522f65e3007670934b5bb35c0c077fa4d7f4200a620b5
|
|
BLAKE2b-256 checksum How to use checksums |
8211ab44b802ac6b735f2b805c6ef960bd98b22f56e87ca7ace50bd14585777d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.
Transparency logRelease files / aicademy-0.5.0-py3-none-any.whl
| Download URL | aicademy-0.5.0-py3-none-any.whl |
|---|---|
| Size | 59.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6fa9676e4291ea7ddcfb172b1061b1c232a1ea744777f0e18ccb83b2a158f5f
|
|
BLAKE2b-256 checksum How to use checksums |
9f5025d09d117c6e2d5b9ccb8ff0351a5ea7beff06d779a02a3c3426435d58e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.
Transparency log