Overview
Manage Andamio courses, modules, and content from the command line
The Andamio CLI is a command-line tool for managing course content and project tasks. Export modules for local editing, create on-chain task bounties linked to GitHub issues, import changes, and manage authentication — all without leaving your terminal.
Want an AI agent to drive it? The Andamio Dev skills package pairs the CLI with an agent so it can operate Andamio alongside you.
Full documentation
The Andamio CLI is open source, and the andamio-cli repo is the source of truth for the complete command reference and workflows: the README and the lifecycle guides for transactions, courses, and projects. The rest of this page is a quick orientation.
What You Can Do
Browse and Query
| Task | Command |
|---|---|
| See your dashboard | andamio user me |
| List your courses | andamio course list |
| List project tasks (public) | andamio project tasks <project-id> |
| Check if a user exists | andamio user exists <alias> |
| Browse API endpoints | andamio spec paths |
Authentication
| Task | Command |
|---|---|
| Authenticate (browser) | andamio user login |
| Authenticate (headless/CI) | andamio user login --skey ./payment.skey --alias myalias |
| Check auth status | andamio user status |
Course Owner and Teacher
| Task | Command |
|---|---|
| List courses you own | andamio course owner list |
| Create a course | andamio course owner create --course-id <id> --pending-tx-hash <hash> |
| List courses you teach | andamio teacher courses |
| Export a module for editing | andamio course export <course-id> <module-code> or --course "Name" |
| Import updated content | andamio course import ./compiled/101 --course-id <id> or --course "Name" |
| Import all modules at once | andamio course import-all ./compiled/my-course --course-id <id> |
| Create a new module | andamio course create-module --course-id <id> --code 101 --title "My Module" |
| Register a module from chain | andamio course teacher register-module --course-id <id> --module-code 101 --slt-hash <hash> |
| Publish a module | andamio course teacher publish-module --course-id <id> --module-code 101 |
| Review a submission in one step | andamio course teacher review --course-id <id> --module-code 101 --participant-alias student1 --decision accept |
| List pending reviews | andamio course teacher commitments --course-id <id> |
| Read one submission in full | andamio teacher assignments get <course-id> <module-code> <student-alias> |
| Build an assessment without signing it | andamio teacher assessment build --course-id <id> --alias <you> --decision <student>=accept |
Two paths lead to the same decision. course teacher review accepts or refuses one submission in a single step — reach for it when you are reviewing by hand. teacher assessment build stops at the unsigned transaction so a person can see the decisions before approving them, which is what you want when a script or an agent proposed them. Pass --decision once per learner, or --decisions-file <path> for a cohort; signing and submitting stay separate steps (see Transactions), and andamio tx run still does the whole lifecycle in one go.
andamio teacher assignments list --course <id> returns each pending submission as Markdown in content.evidence_text, alongside the raw Tiptap document in content.evidence — read the first for the prose, the second to verify an on-chain commitment hash.
Project Owner and Manager
| Task | Command |
|---|---|
| List projects you own | andamio project owner list |
| Create a project | andamio project owner create --project-id <id> --pending-tx-hash <hash> |
| List tasks (manager) | andamio project task list <project-id> |
| Create a task with token rewards | andamio project task create <project-id> --title "..." --lovelace 5000000 --expiration 2026-06-01 --token "policyid,XP,50" |
| Link a task to a GitHub issue | andamio project task create <project-id> --title "..." --github-issue org/repo#42 --lovelace 5000000 --expiration 2026-06-01 |
| Export tasks to Markdown | andamio project task export <project-id> |
| List pending assessments | andamio project manager commitments --project-id <id> |
| Verify task hashes | andamio project task verify-hash <project-id> |
Learners and Contributors
CLI 1.0 scoped the tool to the Owner, Teacher and Manager roles — the people who author work and assess it. Enrolling in a module, submitting assignment evidence, committing to a task, and claiming a credential are not CLI commands.
That work happens in the Andamio app, which signs and submits it in one flow. If you are following a pre-1.0 tutorial and run andamio course student ... or andamio project contributor ..., the CLI will tell you the same thing and exit with code 4.
Transactions
| Task | Command |
|---|---|
| Full transaction lifecycle | andamio tx run /v2/tx/... --body '...' --skey ./key.skey --tx-type ... |
| Sign and submit (step by step) | andamio tx build → tx sign → tx submit → tx register |
Quick Start
# Install
go install github.com/Andamio-Platform/andamio-cli/cmd/andamio@latest
# Configure
andamio auth login --api-key YOUR_KEY
andamio user login
# List courses
andamio course list
# Export a module, edit locally, re-import
andamio course export <course-id> 101
vim compiled/my-course/101/lesson-1.md
andamio course import compiled/my-course/101 --course-id <course-id>Scripting
--output json is the stable surface. Data goes to stdout, progress and errors go to stderr, and no command reads stdin or prompts — everything works without a TTY. Discover ids first, then use them:
COURSE_ID=$(andamio course list --output json | jq -r '.data[0].course_id')
andamio course modules "$COURSE_ID" --output json | jq -r '.data[].course_module_code'Every failure carries an exit code and, under --output json, a matching kind field — both come from the same classification, so they never disagree. An empty result is not an error: a list command that finds nothing emits an empty collection and exits 0, which is what keeps "nothing to review" apart from "not permitted" and "service unreachable."
Run andamio help exit-codes for the full table, or read the Scripting section of the README.
Full Documentation
The comprehensive command reference and step-by-step workflows are maintained in the open-source repo, which is the source of truth:
- README — installation, authentication, every command, networks, output formats, configuration
- Transaction Lifecycle — the build → sign → submit → register → poll pipeline and recovery
- Course Lifecycle — create and manage courses end to end
- Project Lifecycle — create and manage projects and task bounties
One reference stays here in the docs: the Import Format for the outline.md / lesson-N.md files used by course import and course export.