OpenClaw & Hermes

Captain runs inside agent runtimes as well as MCP clients. This page covers OpenClaw and Hermes. If your agent lives in Claude Code, Cursor, VS Code, or Windsurf, use the MCP server instead.

OpenClaw logo

The Captain plugin for OpenClaw exposes the Captain API to OpenClaw runtimes: multimodal search across text, images, video, and audio, with 28 tools covering search, chunk-level read and metadata, document metadata, collection management, job tracking, and indexing from URLs, YouTube, raw text, S3, GCS, Azure, and R2.

Install

$openclaw plugins install @captain-sdk/openclaw-captain

Configure

Add this to your OpenClaw config:

1{
2 "plugins": {
3 "entries": {
4 "captain": {
5 "apiKey": "cap_...",
6 "organizationId": "019a..."
7 }
8 }
9 }
10}

Get an API key at captain.dev.

What you get

Search and collection listing work as soon as the plugin is installed:

  • captain_search: natural-language search across any collection, covering text, images, video, and audio
  • captain_list_collections: list the collections you can reach

Everything else is opt-in. Add the tools you want to tools.allow:

CategoryTools
Collectionscaptain_create_collection, captain_delete_collection
Documentscaptain_list_documents, captain_delete_document, captain_wipe_documents
Documents (v3)captain_list_documents_v3, captain_get_document_v3, captain_mint_asset_urls, captain_update_document_metadata
Chunkscaptain_list_chunks, captain_get_chunk, captain_get_chunk_metadata, captain_set_chunk_metadata, captain_delete_chunk_metadata
Chunk relationscaptain_list_chunk_relations, captain_create_chunk_relation, captain_delete_chunk_relation
Jobscaptain_job_status, captain_cancel_job
Indexingcaptain_index_url, captain_index_youtube, captain_index_text, captain_index_s3, captain_index_gcs, captain_index_azure, captain_index_r2

YouTube indexing reads the video’s captions, so what lands in the collection is the timestamped transcript rather than the frames or the audio track. A video without an available caption track cannot be indexed this way. To index the picture and sound, put the video file itself through file or cloud-storage indexing.

1{
2 "tools": {
3 "allow": [
4 "captain_create_collection",
5 "captain_list_documents",
6 "captain_job_status",
7 "captain_index_url",
8 "captain_index_youtube",
9 "captain_index_text",
10 "captain_index_s3",
11 "captain_index_gcs",
12 "captain_index_azure",
13 "captain_index_r2"
14 ]
15 }
16}

Try it

> Search my-docs for "quarterly revenue trends"
> Index https://example.com/report.pdf into my-docs
> Index this YouTube video into training-videos: https://youtube.com/watch?v=abc123
> List my collections

Which one to use

All three read the same underlying Captain data, so results are equivalent. Pick the one that matches where your agent runs.

Runtime: Claude Code, Cursor, VS Code, Windsurf, any MCP client
Package: @captain-sdk/captain-mcp
Transport: Hosted HTTP at mcp.captain.dev, or local stdio
Tools: 48
Multimodal search (text, images, video, audio): Yes
Chunk-level read and metadata: Yes
Project notes across sessions: Yes, captain_save and captain_find
Local-file upload: Yes, captain_index_file
Cloud-storage indexing (S3, GCS, Azure, R2, Dropbox, Supabase, Backblaze): Yes
Continuous storage syncs: Yes
SharePoint, OneDrive, Google Drive: Yes
URL, YouTube, raw-text indexing: Yes
Collection and job management: Yes

See MCP Server.

© 2026 Captain