Apps & Skills
Apps & Skills List available apps, inspect skill schemas, and use dedicated typed app commands from the terminal. Skills can also be invoked via @mentions in...
Apps & Skills
List available apps, inspect skill schemas, and use dedicated typed app commands from the terminal. Skills can also be invoked via @mentions in chat messages.
Listing Apps
openmates apps list
openmates apps list --json
Shows all available apps with their IDs and descriptions.
App Info
openmates apps web
openmates apps info web
openmates apps web --json
Both openmates apps <app-id> and openmates apps info <app-id> display details about an app, including its available skills.
Skill Info
openmates apps skill-info web search
openmates apps skill-info web search --json
Shows the skill’s description, required parameters, input schema, and any public example chats linked to that app skill. Use this to understand what a skill expects before invoking it through chat, SDKs, or a dedicated typed CLI command.
Skill Example Chats
openmates apps examples travel search_connections
openmates apps examples travel search_connections --json
openmates apps examples travel
Lists public example chats connected to an app skill via the same curated example metadata used by the web app store. The command works without login because example chats are bundled public content. Use the printed openmates chats show ... command to read the transcript in the terminal, or openmates chats open ... to open the web example page.
Typed App Commands
Generic openmates apps <app-id> <skill-id> execution is not supported. Use app-specific typed commands with command-specific help, validation, and examples instead.
openmates tasks create --title "Draft launch checklist"
openmates tasks list
openmates workflows list
openmates apps images detect-ai --file ./image.png
Use openmates <command> --help for each typed command’s accepted flags and examples.
Images AI Detection
The Images app has a dedicated command for checking whether a local image is likely AI-generated. It reuses the authenticated upload pipeline, so the image is uploaded, scanned by Sightengine, stored like a normal upload, and returned with detection metadata.
openmates apps images detect-ai --file ./image.png
openmates apps images detect-ai ./image.webp --json
The JSON output includes ai_generated as a 0.0 to 1.0 probability, the sightengine provider metadata, and a stable classification value.
Travel Booking Links
A specialized command for resolving booking URLs from travel search results:
openmates apps travel booking-link --token "<booking_token>"
openmates apps travel booking-link --token "<booking_token>" --context '{"currency":"EUR"}'
The booking_token is included in travel search results returned by the app or SDK.
Code Run
The Code app has a dedicated convenience command for running local snippets or project files through the app-skill endpoint:
openmates apps code run --language python --code 'print("Hello")'
openmates apps code run --entry main.py --file main.py --file requirements.txt
openmates apps code run --entry main.py --dir ./project --exclude node_modules
Use inline --code for short snippets, repeated --file flags for a small set of files, or --dir plus --entry for a project folder. The command streams status/output when available and falls back to polling the execution status endpoint.
3D Model Search
The 3D Models app has a dedicated search command that returns provider link-out cards. It does not download, cache, or convert model files.
openmates apps models3d search --query benchy
openmates apps models3d search --query benchy --count 2 --providers Printables --json
openmates apps models3d search --query "phone stand" --sort newest --free-only
Use --providers with a comma-separated list or repeated --provider flags. Supported sort values are best_match, popular, downloads, and newest.
Authentication
Skills use your logged-in session by default. Alternatively, pass an API key:
openmates workflows list --api-key <key>
Or set the OPENMATES_API_KEY environment variable.
Memories
Memories are per-app key-value entries stored in Memories. They are encrypted and synced via WebSocket.
Listing Memories
openmates settings memories list
openmates settings memories list --app-id code
openmates settings memories list --app-id code --item-type preferred_tech
openmates settings memories list --json
Listing Memory Types
Shows available memory types and their field schemas for a given app:
openmates settings memories types
openmates settings memories types --app-id code
openmates settings memories types --json
Creating a Memory
openmates settings memories create --app-id code --item-type preferred_tech --data '{"name":"Python","proficiency":"advanced"}'
Field values are validated against the MEMORY_TYPE_REGISTRY in the CLI before sending. See the types command to discover required fields.
Updating a Memory
openmates settings memories update --id <uuid> --app-id code --item-type preferred_tech --data '{"name":"Python","proficiency":"expert"}'
openmates settings memories update --id <uuid> --app-id code --item-type preferred_tech --data '...' --version 2
The --version flag enables optimistic concurrency control.
Deleting a Memory
openmates settings memories delete --id <uuid>
Key Files
- See cli.ts for
handleApps()andhandleMemories() - See client.ts for
runSkill(),listApps(),getSkillInfo(),getSkillSchema(), and theMEMORY_TYPE_REGISTRY
Related Docs
- README – CLI overview
- Settings – settings management (memories are a sub-command of settings)
- Embeds & Sharing – @mentions for skills in chat messages
- CLI Standards – Rule 3 on keeping
MEMORY_TYPE_REGISTRYin sync withapp.yml