From seed-hypermedia
Advanced — requires a running local Seed daemon. Low-level gRPC access for querying accounts, listing documents, inspecting refs, or accessing daemon APIs not exposed by the CLI.
How this skill is triggered — by the user, by Claude, or both
Slash command
/seed-hypermedia:seed-grpcThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scope: Read-only gRPC access to a local Seed Hypermedia daemon. If the user wants to write, update, or delete documents,
Scope: Read-only gRPC access to a local Seed Hypermedia daemon. If the user wants to write, update, or delete documents, route to the seed-cli skill.
Check if grpcurl is installed:
which grpcurl
If not installed:
# macOS
brew install grpcurl
# Linux (package manager)
# Debian/Ubuntu
sudo apt-get install grpcurl
# Fedora/RHEL
sudo dnf install grpcurl
# Arch
sudo pacman -S grpcurl
# Or download binary from: https://github.com/fullstorydev/grpcurl/releases
Seed gRPC server runs on:
localhost:58002localhost:56002Check which is available first.
Document IRI: hm://<account>/<path>?v=<version>#<block>&l
<account> is required (e.g., z6Mk...)<path>: Optional document path?v=<version>: Optional specific version#<block>: Optional block ID&l: Optional latest version flagComment IRI: hm://<author>/<tsid>
<author>: Account identifier<tsid>: Timestamp-based comment IDgrpcurl -plaintext localhost:58002 list # Try dev first
grpcurl -plaintext localhost:56002 list # Then production
Use reflection to discover the API structure for new commands you don't know about. Important: Once you've discovered a service/method structure, you can reause it without doing reflection again. Assume the server does not change. However if subsequent requests fail (read the error message) and they fail because of structure, then you may do reflection again.
# List all services
grpcurl -plaintext <host:port> list
# Describe a service to see its methods
grpcurl -plaintext <host:port> describe <service.name>
# Describe a method to see its signature
grpcurl -plaintext <host:port> describe <service.name.MethodName>
# Describe message structure to see required fields
grpcurl -plaintext <host:port> describe <message.type>
Single operation:
grpcurl -plaintext -d '{"field": "value"}' <host:port> <service/Method>
Compound operations (multiple dependent calls):
# Get data from first call
RESULT=$(grpcurl -plaintext -d '{...}' <host:port> <service1/Method1>)
# Extract needed field using jq
VALUE=$(echo "$RESULT" | jq -r '.fieldName')
# Use in next call
grpcurl -plaintext -d "{\"field\": \"$VALUE\"}" <host:port> <service2/Method2>
### 5. Download media referenced by IPFS
When a document references a media file (audio/video/image/document), it will often be an IPFS URI like:
`ipfs://<cid>`
To download the bytes, use the **local HTTP gateway** (this is not gRPC):
- URL format: `http://localhost:<httpport>/ipfs/<cid>`
- Port mapping: `httpport = grpcport - 1`
- Dev: gRPC `58002` → HTTP `58001`
- Production: gRPC `56002` → HTTP `56001`
Example:
`curl -L "http://localhost:58001/ipfs/<cid>" --output /tmp/downloaded-file`
select the extension according to the media type
Document IRI hm://<account>/<path>?v=<version>#<block>&l:
account: Text after hm:// until first /, ?, #, or &path: Text after first / until ?, #, or & (empty string if absent)version: Value after ?v= (if present)block: Value after # (if present)latest: Check for &l flagComment IRI hm://<author>/<tsid>:
author: Text after hm:// until /tsid: Text after /For exporting documents as markdown (with frontmatter and block IDs), use the Seed CLI instead of gRPC. The CLI's
document get command outputs round-trip-compatible markdown by default:
# Install or update seed-cli (once per session, npm package: @seed-hypermedia/cli)
if ! command -v seed-cli &>/dev/null; then
npm install -g @seed-hypermedia/cli
fi
LOCAL_V=$(seed-cli --version 2>/dev/null)
LATEST_V=$(npm view @seed-hypermedia/cli version 2>/dev/null)
if [ -n "$LATEST_V" ] && [ "$LOCAL_V" != "$LATEST_V" ]; then
npm install -g @seed-hypermedia/cli@latest
fi
# Default output: markdown with frontmatter and block IDs
seed-cli document get hm://z6Mk.../my-doc
# Write to file
seed-cli document get hm://z6Mk.../my-doc -o doc.md
# Structured output (JSON/YAML)
seed-cli document get hm://z6Mk.../my-doc --json
For piping exported markdown back into write operations, see the seed-cli skill.
describe to understand method parametershm://<account>/...), keep the <account> portion unchanged because it is part
of the URL; if helpful, present the resolved display name separately alongside the IRI.For understanding the block tree structure, block types, annotations, and IRI format returned by gRPC document responses, see ./references/seed-document-format.md.
npx claudepluginhub seed-hypermedia/skills --plugin seed-hypermediaGenerates gRPC service definitions, stubs, and implementations from Protocol Buffers. Supports streaming RPCs, interceptors, health checks, TLS, tests, and REST gateways for high-performance APIs.
Defines proto contracts for gRPC services: field numbering, naming conventions, error modeling with google.rpc.Status, streaming patterns, and backward compatibility.
Looks up exact Tesseron protocol specs via MCP tools: wire format, handshake, resume, error codes, sampling/elicitation contracts, and capability negotiation. Use when the user needs chapter-and-verse, not an overview.