Skip to main content

phosphobot – CLI Toolkit for Robot Teleoperation and Action Models PyPI version GitHub Discord

A simple, community-driven middleware for controlling robots, recording datasets, training action models.

All from your terminal or browser dashboard.


Features

  • Easy Installation via pip or the uv package manager
  • Web Dashboard: Instant access to an interactive control panel for teleoperation
  • Dataset Recording: Record expert demonstrations with a keyboard, in VR, or with a leader arm
  • Model Training & Inference: Kick off training jobs or serve models through HTTP/WebSocket APIs

Installation

1. Using pip

pip install phosphobot

2. Using uv

If you already use uv to manage Python versions and deps:

# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Add phosphobot to your project
uv add phosphobot

Quick Start

Once installed, you can start the phosphobot server instantly.

# Verify installation and view info
phosphobot info

# Start the teleoperation server (default: localhost:80)
phosphobot run

# For custom port, e.g. 8080
phosphobot run --port 8080

If you’re managing via uv:

uv run phosphobot info
uv run phosphobot run

Dashboard & Control

After launching the server, open your browser and navigate to:

http://<YOUR_SERVER_ADDRESS>:<PORT>/

By default, the address is localhost:80

Here you can:

  • Teleoperate your robot via keyboard, leader arm, or Meta Quest
  • Record demonstration datasets (40 episodes recommended)
  • Train and deploy action models directly from the UI

Start building


Adding a New Robot

You can extend phosphobot by plugging in support for any custom robot. Just follow these steps to install phosphobot from source on any OS:

  1. Clone the phosphobot repo and fetch submodules. Make sure you have git lfs installed beforehand

    git clone https://github.com/phospho-app/phosphobot.git
    cd phosphobot
    git submodule update --init --recursive
    
  2. Install uv to manage python dependencies. The recommended python version for dev is 3.10

    curl -LsSf https://astral.sh/uv/install.sh | sh
    

    Then restart your terminal and verify that uv is in your path.

    uv --version # should output: uv 0.7.10 
    
  3. Install nvm and Node.js. We recommend to manage Node versions via nvm.

    # Install nvm
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
    

    Then restart your terminal and verify:

    command -v nvm   # should output: nvm
    

    Finally, install the latest Node.js:

    nvm install node   # “node” is an alias for the latest version
    
  4. Build the app. (Linux and MacOS) From the root of the repo, run:

    make
    

    Which is a shortcut for the following command:

    cd ./dashboard && ((npm i && npm run build && mkdir -p ../phosphobot/resources/dist/ && cp -r ./dist/* ../phosphobot/resources/dist/) || echo "npm command failed, continuing anyway") 
     cd phosphobot && uv run phosphobot run --simulation=headless
    

    On Windows, run the full command to build the app.

  5. Create your robot driver

    1. In the directory phosphobot/phosphobot/hardware add a new file, e.g. my_robot.py. Inside, define a class inheriting from BaseRobot:

      from phosphobot.hardware.base import BaseRobot
      
      class MyRobot(BaseRobot):
          def __init__(self, config):
              super().__init__(config)
              # Your initialization here
      
          ... # Implement the BaseRobot's abstract methods here
      

      We use pybullet (docs) as a robotics simulation backend. Make sure to add your robot's urdf in phosphobot/resources/urdf.

  6. Make your robot detectable Open phosphobot/phosphobot/robot.py and locate the RobotConnectionManager class. Make sure your robot can be detected.

Build and run the app again and ensure your robot gets detected and can be moved. Happy with your changes? Open a pull request! We also recommend you look for testers on our Discord.


License

MIT License

Made with 💚 by the Phospho community.

Metadata

Release files for navrim-phosphobot 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for navrim-phosphobot 0.1.1
File Size Uploaded Provenance Actions
navrim_phosphobot-0.1.1.tar.gz 15.0 MB Without provenance Details for navrim_phosphobot-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for navrim-phosphobot 0.1.1
File Interpreter ABI Platform Actions
navrim_phosphobot-0.1.1-py3-none-any.whl Python 3 none any Details for navrim_phosphobot-0.1.1-py3-none-any.whl

Total release size: 30.1 MB

Security for navrim-phosphobot 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page