Andamio Logo
Apps & Tooling/CLI

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

TaskCommand
See your dashboardandamio user me
List your coursesandamio course list
List project tasks (public)andamio project tasks <project-id>
Check if a user existsandamio user exists <alias>
Browse API endpointsandamio spec paths

Authentication

TaskCommand
Authenticate (browser)andamio user login
Authenticate (headless/CI)andamio user login --skey ./payment.skey --alias myalias
Check auth statusandamio user status

Course Owner and Teacher

TaskCommand
List courses you ownandamio course owner list
Create a courseandamio course owner create --course-id <id> --pending-tx-hash <hash>
List courses you teachandamio teacher courses
Export a module for editingandamio course export <course-id> <module-code> or --course "Name"
Import updated contentandamio course import ./compiled/101 --course-id <id> or --course "Name"
Import all modules at onceandamio course import-all ./compiled/my-course --course-id <id>
Create a new moduleandamio course create-module --course-id <id> --code 101 --title "My Module"
Register a module from chainandamio course teacher register-module --course-id <id> --module-code 101 --slt-hash <hash>
Publish a moduleandamio course teacher publish-module --course-id <id> --module-code 101
Review a submission in one stepandamio course teacher review --course-id <id> --module-code 101 --participant-alias student1 --decision accept
List pending reviewsandamio course teacher commitments --course-id <id>
Read one submission in fullandamio teacher assignments get <course-id> <module-code> <student-alias>
Build an assessment without signing itandamio 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

TaskCommand
List projects you ownandamio project owner list
Create a projectandamio project owner create --project-id <id> --pending-tx-hash <hash>
List tasks (manager)andamio project task list <project-id>
Create a task with token rewardsandamio project task create <project-id> --title "..." --lovelace 5000000 --expiration 2026-06-01 --token "policyid,XP,50"
Link a task to a GitHub issueandamio project task create <project-id> --title "..." --github-issue org/repo#42 --lovelace 5000000 --expiration 2026-06-01
Export tasks to Markdownandamio project task export <project-id>
List pending assessmentsandamio project manager commitments --project-id <id>
Verify task hashesandamio 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

TaskCommand
Full transaction lifecycleandamio tx run /v2/tx/... --body '...' --skey ./key.skey --tx-type ...
Sign and submit (step by step)andamio tx buildtx signtx submittx 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.