Usage Modes
RAPS🌼RAPSRust CLI for Autodesk Platform Services.View in glossary offers six 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 |
| 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)
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": ["serve"],
"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:
- 14 MCP tools for APS operations
- Natural language commands
- Works with Claude, Cursor, and other MCP clients
- No command syntax needed
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