Recommended setup
- Ubuntu (Native)
- macOS
Running Ubuntu natively on an x86_64 machine is the recommended setup for best performance.Pick your Ubuntu version to match the ROS2 distribution you want — each ROS2 release targets exactly one:
Use your system terminal (GNOME Terminal, Konsole, any terminal emulator), or the integrated terminal in VS Code or Cursor.
Step 1: Install Drift CLI
Prefer a manual install?
Prefer a manual install?
Download the latest Then run
.deb package from the GitHub Releases page and install it with:drift to start.Step 2: Launch Drift
Step 3: Sign in with Google
The first time you run Drift, it prints a Google Sign-In URL. Signing in is required — Drift won’t take a prompt until you do.- Open the URL Drift printed in your browser
- Complete Google Sign-In
- Drift detects it automatically and drops you at the prompt
/profile, and sign in again later with /login. If you ever see “Authentication required”, your session has expired — run /login. See Troubleshooting if the login flow gives you trouble.
First time launching from a fresh directory, Drift will nudge you to run /init — that’s the project-context bootstrap (see Step 4).
Step 4: Give Drift project context with /init
The single most useful thing you can do before your first real prompt:
DRIFT.md at the project root with:
- A summary of your robot and project
- Detected ROS2 packages and dependencies
- Build and launch conventions
Step 5: Set up your simulator
Pick what you need:- Gazebo Harmonic (for ROS2)
- MuJoCo (for fast, scriptable sims)
Check what’s installed:If either is missing, ask Drift to install both:
Step 6: Build your first simulation
At thedrift> prompt, describe what you want in plain English:
- Gazebo
- MuJoCo
Step 7: Launch and iterate
Launch the simulation (Gazebo path):add a lidar sensor to my robot and rebuildadd a second obstacle box at (1, -1) in the scenewhy isn't my camera publishing images?show me the running processes
Pro tips
Be specific in your prompts
Be specific in your prompts
Vague prompts produce generic results. Instead of:Try:The more detail about robot type, sensors, environment, and task — the better the output.
Let Drift explore before changing things
Let Drift explore before changing things
Before modifying a simulation, ask Drift to inspect what’s already there:This helps Drift make targeted changes and avoids unnecessary rebuilds.
Debug by describing, not by guessing
Debug by describing, not by guessing
When something breaks, describe the symptom directly:Drift checks topics, logs, URDF / MJCF config, and process state to give you a diagnosis.
Hand your team's knowledge to the agent with /skill
Hand your team's knowledge to the agent with /skill
If your team has a specific way of tuning SLAM, calibrating an IMU, or writing a Gazebo plugin, write it down as a markdown file and:Drift will use that skill from then on. See Custom Skills for the full pattern.
Useful slash commands
What’s next?
Robot Showcase
Full walkthroughs with Unitree Go2, Aloha, and Unitree H1
Your First Simulation
A detailed walkthrough of building a complete simulation from scratch
Project Context
The full DRIFT.md workflow
Custom Skills
Hand your team’s expertise to Drift
Getting help
- In Drift: type
/helpor askdrift> how do I... - FAQ: Frequently Asked Questions
- Bugs: Open an issue on GitHub
- Discord: Join the community