CLI tool for FoodforThought robotics repository platform - manage robot skills and data
Project description
FoodforThought CLI
GitHub-like CLI tool for the FoodforThought robotics repository platform.
Version: 0.2.1
PyPI: https://pypi.org/project/foodforthought-cli/
Installation
pip install foodforthought-cli
Or install from source:
cd foodforthought-cli
pip install -e .
Configuration
Set environment variables:
export ATE_API_URL="https://kindly.fyi/api"
export ATE_API_KEY="your-api-key-here"
Usage
Initialize a repository
ate init my-robot-skill -d "A skill for my robot" -v public
Clone a repository
ate clone <repository-id>
Create a commit
ate commit -m "Add new control algorithm"
Push to remote
ate push -b main
Deploy to robot
ate deploy unitree-r1
Commands
Repository Management
ate init <name>- Initialize a new repositoryate clone <repo-id>- Clone a repositoryate commit -m <message>- Create a commitate push [-b <branch>]- Push commits to remote
Skill Pipeline
ate pull <skill-id> [--robot <robot>] [--format json|rlds|lerobot] [--output ./data]- Pull skill data for trainingate upload <video-path> --robot <robot> --task <task> [--project <id>]- Upload demonstrations for labelingate check-transfer --from <source-robot> --to <target-robot> [--skill <id>]- Check skill transfer compatibilityate labeling-status <job-id>- Check labeling job status
Parts & Dependencies (New in v0.2.0)
ate parts list [--category gripper]- List available hardware partsate parts check <skill-id>- Check part compatibility for a skillate parts require <part-id> --skill <skill-id>- Add part dependency to a skillate deps audit- Verify all dependencies are compatible
Text-to-Skill Generation (New in v0.2.0)
ate generate "<description>" --robot <robot> --output ./skill/- Generate skill skeleton from natural language
Example:
ate generate "pick up box and place on pallet" --robot franka-panda --output ./new-skill/
Workflow Orchestration (New in v0.2.0)
ate workflow validate <pipeline.yaml>- Validate a workflow definitionate workflow run <pipeline.yaml> --sim- Run workflow in simulationate workflow export <pipeline.yaml> --format ros2- Export to ROS2 launch format
Team Collaboration (New in v0.2.0)
ate team create <name>- Create a new teamate team invite <email> --role member- Invite a memberate team list- List teams and membersate skill share <skill-id> --team <team-slug>- Share a skill with a team
Skill Compiler (New in v0.2.1)
Compile skill.yaml specifications into deployable packages. See docs/SKILL_COMPILER.md for full documentation.
# Validate a skill specification
ate validate-skill my_skill.skill.yaml
# Compile to Python package
ate compile my_skill.skill.yaml --target python --output ./dist
# Compile to ROS2 package
ate compile my_skill.skill.yaml --target ros2 --robot robots/ur5.urdf
# Test the compiled skill
ate test-skill ./dist --mode dry-run
# Check robot compatibility
ate check-compatibility my_skill.skill.yaml --robot-urdf robots/ur5.urdf
# Publish to registry
ate publish-skill ./dist --visibility public
Quick Start for AI Assistants:
ate_list_primitives- Discover available building blocksate_validate_skill_spec- Check skill.yaml for errorsate_check_skill_compatibility- Verify robot compatibilityate_compile_skill- Generate deployable codeate_test_compiled_skill- Test without a robot
Dataset Management (New in v0.2.0)
ate data upload ./sensor-logs/ --skill <id> --stage raw- Upload sensor dataate data list --skill <id> --stage annotated- List datasetsate data promote <dataset-id> --to skill-abstracted- Promote to next stageate data export <dataset-id> --format rlds- Export dataset
Deployment & Configuration (New in v0.2.0)
ate deploy --config deploy.yaml --target fleet-alpha- Deploy with configate deploy status <fleet-name>- Check deployment status
Deployment & Testing
ate deploy <robot-type>- Deploy to a robot (e.g., unitree-r1)ate test [-e gazebo|mujoco|pybullet|webots] [-r robot]- Test skills in simulationate benchmark [-t speed|accuracy|robustness|efficiency|all]- Run performance benchmarksate adapt <source-robot> <target-robot>- Adapt skills between robots
Safety & Validation
ate validate [-c collision|speed|workspace|force|all]- Validate safety and complianceate stream [start|stop|status] [-s sensors...]- Stream sensor data
Cursor IDE Integration (MCP)
FoodforThought CLI includes a full MCP (Model Context Protocol) server for integration with Cursor IDE.
Quick Install via Deep Link
Click this link to install in Cursor:
cursor://anysphere.cursor-deeplink/mcp/install?name=foodforthought&config=eyJtY3BTZXJ2ZXJzIjogeyJmb29kZm9ydGhvdWdodCI6IHsiY29tbWFuZCI6ICJweXRob24iLCAiYXJncyI6IFsiLW0iLCAiYXRlLm1jcF9zZXJ2ZXIiXSwgImVudiI6IHsiQVRFX0FQSV9VUkwiOiAiaHR0cHM6Ly9raW5kbHkuZnlpL2FwaSJ9fX19
Manual Installation
-
Install the CLI:
pip install foodforthought-cli
-
Install MCP SDK:
pip install mcp
-
Add to your Cursor MCP config (
~/.cursor/mcp.jsonor.cursor/mcp.json):{ "mcpServers": { "foodforthought": { "command": "python", "args": ["-m", "ate.mcp_server"], "env": { "ATE_API_URL": "https://kindly.fyi/api" } } } }
-
Restart Cursor
Available MCP Tools (37+)
| Category | Tools |
|---|---|
| Skill Compiler | ate_compile_skill, ate_validate_skill_spec, ate_test_compiled_skill, ate_publish_compiled_skill, ate_check_skill_compatibility |
| Primitives | ate_list_primitives, ate_get_primitive |
| Skills | ate_skills_list, ate_skills_create, ate_skills_get, ate_pull, ate_upload |
| Testing | ate_test, ate_simulate |
| Compatibility | ate_adapt, ate_compatibility_check |
| Parts | ate_parts_list, ate_parts_check, ate_parts_require, ate_deps_audit |
| Generation | ate_generate |
| Workflows | ate_workflow_validate, ate_workflow_run, ate_workflow_export |
| Teams | ate_team_create, ate_team_invite, ate_team_list, ate_team_share |
| Datasets | ate_data_upload, ate_data_list, ate_data_promote, ate_data_export |
| Deployment | ate_deploy, ate_deploy_status |
| Audit | ate_audit_trail |
MCP Resources
skill://{id}- Skill details and configurationpart://{id}- Hardware part specificationsworkflow://{id}- Workflow definitionteam://{id}- Team informationdeployment://{id}- Deployment statusaudit://{id}- Audit trail
MCP Prompts
setup_workflow- Guide for multi-skill workflowsdeploy_skill- Step-by-step deployment guidedebug_compatibility- Debug skill transfer issuesonboard_robot- Add a new robot to the platformaudit_deployment- Generate audit reports
See the MCP Server Guide for full documentation.
CI/CD Integration
GitHub Actions
Use the provided actions for CI/CD:
name: Skill CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: kindly-robotics/test-skill@v1
with:
skill-path: ./
robot-model: ur5
- uses: kindly-robotics/check-transfer@v1
with:
skill: .
min-score: 0.6
License
Copyright © 2024-2025 Kindly Robotics. All rights reserved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file foodforthought_cli-0.2.8.tar.gz.
File metadata
- Download URL: foodforthought_cli-0.2.8.tar.gz
- Upload date:
- Size: 249.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e654120fcce4523471cda180ac09d18ff99814b0f03a92dc8bfec0f3f7069a0b
|
|
| MD5 |
3df80ad77e5df58419d954ff6a9030e9
|
|
| BLAKE2b-256 |
d0b952927a107eb50e3e8f11dc0520506fa67e40026bfb5fb25aae725aec59a1
|
Provenance
The following attestation bundles were made for foodforthought_cli-0.2.8.tar.gz:
Publisher:
cli-release.yml on kindlyrobotics/monorepo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
foodforthought_cli-0.2.8.tar.gz -
Subject digest:
e654120fcce4523471cda180ac09d18ff99814b0f03a92dc8bfec0f3f7069a0b - Sigstore transparency entry: 796714607
- Sigstore integration time:
-
Permalink:
kindlyrobotics/monorepo@21baa4df3d3c6c871c841371a5126c9b7ffc865a -
Branch / Tag:
refs/tags/cli-v0.2.8 - Owner: https://github.com/kindlyrobotics
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cli-release.yml@21baa4df3d3c6c871c841371a5126c9b7ffc865a -
Trigger Event:
push
-
Statement type:
File details
Details for the file foodforthought_cli-0.2.8-py3-none-any.whl.
File metadata
- Download URL: foodforthought_cli-0.2.8-py3-none-any.whl
- Upload date:
- Size: 277.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a63d8b891ee4333929fa93521d3a18d892804fd2c1a783ceb595c4d7dd247b27
|
|
| MD5 |
ae3fb6d2ccd0734c55a6dcdedc99acb7
|
|
| BLAKE2b-256 |
6a83dca1c5cf8475640cb804527b750478fa134a30d09692bf3c0087f0572deb
|
Provenance
The following attestation bundles were made for foodforthought_cli-0.2.8-py3-none-any.whl:
Publisher:
cli-release.yml on kindlyrobotics/monorepo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
foodforthought_cli-0.2.8-py3-none-any.whl -
Subject digest:
a63d8b891ee4333929fa93521d3a18d892804fd2c1a783ceb595c4d7dd247b27 - Sigstore transparency entry: 796714621
- Sigstore integration time:
-
Permalink:
kindlyrobotics/monorepo@21baa4df3d3c6c871c841371a5126c9b7ffc865a -
Branch / Tag:
refs/tags/cli-v0.2.8 - Owner: https://github.com/kindlyrobotics
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cli-release.yml@21baa4df3d3c6c871c841371a5126c9b7ffc865a -
Trigger Event:
push
-
Statement type: