DevCon 2026: Zero to Production CLI Speedrun

In 30 minutes, go from zero tooling to a production-ready workflow with authentication, file management, model translation, and AI assistant integration.

#devcon #cli #tutorial #installation #speedrun
Dmytro Yemelianov - Author
Dmytro Yemelianov
Autodesk Expert Elite β€’ APS Developer

DevCon 2026 Session 1258 | 30-minute deep dive | Developer Track

Zero to Production Hero

The Problem

Every APS project starts the same way. You create an app in the developer portal. You copy the client ID and secret. Then you open your favorite HTTP client and start crafting requests. Base64-encode the credentials. POST to the token endpoint. Copy the access token. Remember to add β€œBearer” prefix. Paste it into the next request. Repeat when the token expires in an hour.

It’s 2026. We can do better.

This session is a speedrun. In 30 minutes, we’ll go from zero tooling to a production-ready workflow that handles authentication, file management, model translation, andβ€”here’s the twistβ€”AI assistant integration.

Part 1: Installation (Choose Your Adventure)

Multi-Platform Install

Six ways to installβ€”pick the one that doesn’t make you twitch.

Linux/macOS:

curl -fsSL https://raw.githubusercontent.com/dmytro-yemelianov/raps/main/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/dmytro-yemelianov/raps/main/install.ps1 | iex

Package Managers

# npm
npm install -g @dmytro-yemelianov/raps-cli

# pip
pip install raps

# Homebrew (macOS/Linux)
brew install dmytro-yemelianov/tap/raps

# Scoop (Windows)
scoop bucket add raps https://github.com/dmytro-yemelianov/scoop-bucket
scoop install raps

# Cargo (Rust)
cargo install raps

Verify Installation

raps --version
# raps 4.3.0

Configuration: Making It Yours

Create Your First Profile

# Interactive setup
raps config profile create dev

# Or set values directly
raps config set client_id "your_client_id"
raps config set client_secret "your_client_secret"

Multiple Environments

# Create profiles for each environment
raps config profile create dev
raps config profile create staging
raps config profile create production

# Switch between them
raps config profile use staging

# Check active profile
raps config profile current
# β†’ staging

Test Your Setup

raps auth test
# βœ“ Authentication successful
#   Token expires in: 59 minutes
#   Scopes: data:read data:write bucket:create ...

Part 2: Core Operations

CLI Workflow

Buckets: Your Cloud Storage

# Create a bucket
raps bucket create --key hospital-project-2026 --policy persistent --region us

# List your buckets
raps bucket list
# β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”
# β”‚ Bucket Key              β”‚ Policy     β”‚ Region β”‚
# β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€
# β”‚ hospital-project-2026   β”‚ persistent β”‚ US     β”‚
# β”‚ temp-uploads            β”‚ transient  β”‚ US     β”‚
# β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Uploads: Handling Real Files

# Upload a file (auto-chunks large files)
raps object upload hospital-project-2026 model.rvt
# [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] 100% | 245 MB
# βœ“ Upload complete!
#   URN (for translation): dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6aG9z...

# Batch upload with parallel processing
raps object upload-batch hospital-project-2026 *.dwg --parallel 4

Translation: The Moment of Truth

# Start a translation
raps translate start dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6aG9z... --format svf2

# Wait for completion (no manual polling!)
raps translate status dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6aG9z... --wait
# Translation progress: 15%... 42%... 78%... 100%
# βœ“ Translation complete!

Data Management: Navigating ACC/BIM 360

# List your hubs (requires 3-legged auth)
raps auth login  # Opens browser for OAuth flow
raps hub list

# Navigate the hierarchy
raps project list b.abc123-hub-id
raps folder list b.xyz789-project-id urn:folder:root
raps item versions b.xyz789-project-id urn:item:12345

Part 3: AI Integration

Speedrun Timer

Start the MCP Server

raps serve

That’s it. The CLI is now an MCP server, exposing 35 tools for AI assistants.

Connect Claude Desktop

Edit your Claude configuration:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/claude/claude_desktop_config.json

{
  "mcpServers": {
    "raps": {
      "command": "raps",
      "args": ["serve"],
      "env": {
        "APS_CLIENT_ID": "your_client_id",
        "APS_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

What Can You Do With This?

Once connected, natural language becomes API operations:

  • β€œList all my OSS buckets” β†’ AI calls bucket_list
  • β€œCreate a bucket named β€˜new-project’ with transient policy” β†’ AI calls bucket_create
  • β€œWhat’s the status of my translation job?” β†’ AI calls translate_status
  • β€œAdd user@company.com to all active projects” β†’ AI calls admin_user_add

The Bigger Picture

APS is powerful. The APIs are comprehensive. But there’s a gapβ€”a big oneβ€”between reading the documentation and actually shipping production code. That gap is filled with friction: OAuth dance, Base64 encoding URNs, polling loops with magic sleep timers.

Good tooling shrinks that gap. It lets you focus on what you’re actually building instead of fighting the mechanics.

Key Takeaways

  1. CLI beats clicking for anything you do more than twice
  2. 150+ commands across 15 APIsβ€”probably covers what you need
  3. Pick your poison for install: npm, pip, brew, scoop, cargo, or curl-bash
  4. Profiles save your sanity when juggling staging vs prod
  5. MCP is realβ€”35 tools, works today, not a demo
  6. Open source means you can fix bugs without waiting on a vendor ticket

Resources