Usage Modes
RAPSπΌRAPSRust CLI for Autodesk Platform Services.View in glossary offers seven different ways to interact with Autodesk Platform ServicesβοΈAPSAutodesk Platform Services - cloud APIs for CAD/BIM automation.View in glossary. Choose the mode that best fits your workflowπWorkflowAutomated process triggered by events.View in glossary.
At a Glance
| Mode | Best For | Key Features |
|---|---|---|
| CLI | Scripts, automationπ€AutomationReplacing manual processes with software.View in glossary | Full commandβΆοΈCommandInstruction executed by a CLI tool.View in glossary set, piping, exit codes |
| Interactive Shell | Learning, exploration | TAB completion, hints, history |
| TUI Dashboard | Visual monitoring | 7 tabs, 33 views, real-time status |
| Python Bindings | Python integration | Native library, type hints, exceptions |
| GitHub Actions | GitHub CI/CDπCI/CDAutomated build, test, and deployment pipelines.View in glossary | Pre-built action, matrix builds |
| Docker | Containerized workflows | No install, isolated, multi-arch |
| MCP Server | AI assistants | Natural language, Claude/Cursor |
CLI Mode
The standard command-lineπ»CLIText-based interface for running commands.View in glossary interface for scripts and automation.
# One-liner operations
raps bucket list --output json | jq '.[] | .bucketKey'
# Scripting with exit codes
if raps auth test; then
raps object upload my-bucket model.rvt
fi
Key features:
- Full command set (100+ commands)
- Multiple output formats (JSONπJSONStandard data interchange format.View in glossary, YAMLπYAMLHuman-readable configuration format.View in glossary, CSVπCSVTabular data format for spreadsheets.View in glossary, table)
- Standardized exit codes for scripting
- Shellπ₯οΈTerminalApplication for running command-line programs.View in glossary completions (bash, zsh, fish, PowerShell)
π CLI Mode Documentation β
Interactive Shell
REPLπInteractive ShellRAPS mode for executing commands interactively.View in glossary environment with TAB completion and parameter hints.
$ raps shell
Welcome to the RAPS interactive shell!
raps> bucket [TAB]
create delete get list
raps> bucket create <BUCKET_KEY>
raps> bucket create my-test --retention transient
β Bucket created: my-test
Key features:
- TAB completion for commands and flags
- Gray parameter hints show required/optional args
- Command history with β/β navigation
- Built-in help command
π Interactive Shell Documentation β
Python Bindings
Native Python library for programmatic access.
from raps import Client
client = Client.from_env()
# List buckets
for bucket in client.buckets.list():
print(f"{bucket.key}: {bucket.policy}")
# Upload and translate
obj = client.objects("my-bucket").upload("model.rvt")
job = client.translate(obj.urn)
result = job.wait()
Key features:
- Native Python library via PyO3
- Full type hints for IDE support
- Structured exceptions (AuthenticationError, NotFoundError, etc.)
- Context manager support
π Python Bindings Documentation β
GitHub Actions
Pre-built action for CI/CD workflows.
# .github/workflows/aps.yml
- name: Setup RAPS
uses: dmytro-yemelianov/raps-action@v1
- name: Upload Models
run: raps object upload my-bucket models/*.rvt --batch
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
Key features:
- Easy setup with single action
- Version pinning for reproducibility
- Cross-platform (ubuntu, windows, macos)
- Matrix builds for parallel processing
π GitHub Actions Documentation β
Docker
Run RAPS in isolated containers.
# Single command
docker run --rm \
-e APS_CLIENT_ID="$APS_CLIENT_ID" \
-e APS_CLIENT_SECRET="$APS_CLIENT_SECRET" \
ghcr.io/dmytro-yemelianov/raps:latest \
bucket list
# With file uploads
docker run --rm \
-e APS_CLIENT_ID="$APS_CLIENT_ID" \
-e APS_CLIENT_SECRET="$APS_CLIENT_SECRET" \
-v $(pwd)/models:/data \
ghcr.io/dmytro-yemelianov/raps:latest \
object upload my-bucket /data/model.rvt
Key features:
- No Rustπ¦RustSystems programming language known for safety.View in glossary installation required
- Multi-architecture (amd64, arm64)
- Works in any CI/CD system
- Kubernetes ready
MCP Server
AI assistant integration via Model Context Protocolπ§ MCPProtocol for AI assistant tool integration.View in glossary.
// claude_desktop_config.json
{
"mcpServers": {
"raps": {
"command": "raps",
"args": ["mcp"],
"env": {
"APS_CLIENT_ID": "your_client_id",
"APS_CLIENT_SECRET": "your_client_secret"
}
}
}
}
Then ask Claude: βList all my OSSπ¦OSSAPS cloud storage for files and models.View in glossary bucketsβ
Key features:
- 111 MCP tools for APS operations
- Natural language commands
- Works with Claude, Cursor, and other MCP clients
- No command syntax needed
π MCP Server Documentation β
Comparison Matrix
| Feature | CLI | Shell | Python | Actions | Dockerπ³DockerContainer platform for consistent environments.View in glossary | MCP |
|---|---|---|---|---|---|---|
| TAB completion | β | β | IDE | β | β | β |
| Type hints | β | β | β | β | β | β |
| Command history | β | β | β | β | β | β |
| Scripting | β | β | β | β | β | β |
| CI/CD native | β | β | β | β | β | β |
| Natural language | β | β | β | β | β | β |
| No install needed | β | β | β | β | β | β |
| Isolated environment | β | β | β | β | β | β |
| Exception handling | codes | codes | β | codes | codes | β |
Choosing the Right Mode
How will you use RAPS?
β
βββββββββββββββββ¬ββββββββΌββββββββ¬ββββββββββββββββ
βΌ βΌ βΌ βΌ βΌ
ββββββββββ βββββββββββ ββββββββ βββββββββββ ββββββββββ
βLearningβ β Python β βScriptβ βContainerβ β AI β
βExplore β β Code β βCI/CD β β K8s β β Assist β
βββββ¬βββββ ββββββ¬βββββ ββββ¬ββββ ββββββ¬βββββ βββββ¬βββββ
β β β β β
βΌ βΌ βΌ βΌ βΌ
ββββββββββ βββββββββββ ββββββββ βββββββββββ ββββββββββ
β Shell β β Python β β CLI β β Docker β β MCP β
β β βBindings β βActionβ β β β Server β
ββββββββββ βββββββββββ ββββββββ βββββββββββ ββββββββββ
Recommendations
Use Interactive Shell if youβre:
- New to RAPS and learning commands
- Exploring available options
- Debugging command syntax
Use Python Bindings if youβre:
- Building Python applications
- Need type safety and IDE support
- Integrating with data pipelines
- Want structured exception handling
Use CLI if youβre:
- Writing shell scripts
- Piping output to other tools
- Running one-off commands
Use GitHub ActionsπGitHub ActionsGitHub's built-in CI/CD platform.View in glossary if youβre:
- Automating on GitHub
- Need easy CI/CD integration
- Running parallel matrix builds
Use Docker if youβre:
- Running in containers/Kubernetes
- Need isolated environments
- Donβt want to install Rust
Use MCP Server if youβre:
- Using Claude Desktop or Cursor
- Prefer natural language
- Prototyping quickly