Context Management¶
Set default values for common flags like --course-id so you don't have to type them repeatedly.
Overview¶
When working with a specific course, you typically run many commands with the same --course-id. Context management lets you set this once and have it apply automatically:
# Without context - repetitive
canvas assignments list --course-id 12345
canvas submissions list --course-id 12345 --assignment-id 67890
canvas modules list --course-id 12345
# With context - clean and simple
canvas context set course 12345
canvas assignments list
canvas submissions list --assignment-id 67890
canvas modules list
Setting Context¶
Use canvas context set to set default values:
Available Context Types¶
| Type | Flag it replaces | Example |
|---|---|---|
course |
--course-id |
canvas context set course 12345 |
assignment |
--assignment-id |
canvas context set assignment 67890 |
user |
--user-id |
canvas context set user 111 |
account |
--account-id |
canvas context set account 1 |
Setting Multiple Values¶
Now commands automatically use both:
Viewing Context¶
See your current context settings:
Output:
Clearing Context¶
Clear All Context¶
Clear Specific Value¶
How Context Works¶
- When you run a command, Canvas CLI checks if required flags are provided
- If a flag is missing, it checks for a context value
- Context values are used as defaults when flags aren't specified
- Explicit flags always override context values
Example Flow¶
# Set context
canvas context set course 12345
# These are equivalent:
canvas assignments list # Uses context (course 12345)
canvas assignments list --course-id 12345 # Explicit flag
# Override context with a different value
canvas assignments list --course-id 99999 # Uses 99999, ignores context
Storage¶
Context is stored in your configuration file (~/.canvas-cli/config.yaml):
Workflow Examples¶
Grading Workflow¶
# Set up context for grading session
canvas context set course 12345
canvas context set assignment 67890
# Now grade submissions efficiently
canvas submissions list
canvas submissions grade 111 --grade 95 --comment "Great work!"
canvas submissions grade 222 --grade 88
# Done grading, clear context
canvas context clear
Course Management Workflow¶
# Working on a specific course
canvas context set course 12345
# Run multiple commands
canvas assignments list
canvas modules list
canvas users list --enrollment-type student
canvas announcements list
# Switch to another course
canvas context set course 54321
Combined with Aliases¶
Context and aliases work great together:
# Set course context
canvas context set course 12345
# Create aliases that use context
canvas alias set hw "assignments list"
canvas alias set grades "submissions list"
# Use them - context provides the course ID
canvas hw
canvas grades --assignment-id 67890
Tips¶
- Set context at the start of a work session
- Clear context when switching tasks to avoid confusion
- Use
canvas context showto verify your current context - Explicit flags always take precedence over context