For AI agents
Body language for AI agents, on your terms.
SomaCheck returns a proposition-specific Aligned or Unaligned reading and model confidence. Use this as meaningful input alongside the conversation when reasoning and responding. Confidence describes the classifier’s uncertainty.
The agent never receives raw motion.
Use SomaCheck
You need the SomaCheck iPhone app from the App Store, and about a minute to connect it.
| Where | How you connect |
|---|---|
| Claude.ai / Claude Desktop | Add a custom connector with the hosted URL, then sign in |
| ChatGPT | Live in store. Find SomaCheck in the ChatGPT plugin store and install it, then sign in |
| Claude Code | Install the plugin and link your app. Automatic continuation additionally needs an enabled, allowed Channel session. |
| Cursor / Windsurf (developer preview) | Use the Cursor or Windsurf hosted OAuth setup guide, then sign in to your own SomaCheck account. |
| Codex | Run the one-time link command from the app |
Step 1
Connect once
Link your assistant to your own SomaCheck app. You can unlink it at any time from the app.
Step 2
Your agent asks
When words stall, it sends one first-person statement for you to test, with your consent.
Step 3
You answer with your body
Three seconds of movement. Of the motion-derived data, only the processed signal and confidence return to your agent.
Try your first phone check-in
Ask: “Send a SomaCheck vibecheck: I want to finish one workstream before starting another.” Your explicit request authorizes this check-in; it does not authorize any later action.
Look for that same statement on your phone, complete the gesture, and let the agent retrieve the actual Aligned or Unaligned signal with confidence. The agent should use request_vibecheck for an immediate ask, not the optional reflection feed.
If pending, keep the same request handle and check it with get_vibecheck_result; do not create another request just to check the result. If no prompt appears, open SomaCheck on the same account. A server status is not proof that your phone displayed it.
An enabled, allowed Claude Code Channel can return a delayed result to the open session. Without it, the agent must keep checking during its active turn, or you can ask it to check the same request later. Installing the plugin alone does not enable Channels.
Build with SomaCheck
The hosted endpoint speaks streamable HTTP and authorizes with OAuth. The endpoint publishes protected-resource metadata and points clients to the authorization server’s discovery metadata.
https://mcp.somacheck.com/functions/v1/mcpFor local clients, install the pinned runtime. It is published to npm under the MIT license:
npx -y @somacheck/vibecheck@0.6.20 link <CODE>Catalog metadata for registries lives at /server.json. The local runtime has a Glama listing; that is separate from hosted OAuth and does not by itself prove a phone round trip.
Tools
The live server advertises these over tools/list, with full input schemas. The server is the source of truth; the summaries below mirror it.
| Tool | What it does | Behaviour |
|---|---|---|
| request_vibecheck | Sends one consented statement to the phone and waits briefly for its exact result. | creates one consented phone request; the person decides whether to respond |
| get_vibecheck_result | Reads the status or exact result for one request handle. | read-only |
| get_vibecheck_context | Reads recent completed gesture signals for this exact agent link. | read-only |
| get_vibecheck_status | Reads optional reflection-feed status and available capacity, not a required quota. | read-only |
| post_vibecheck_statement | Stocks the optional reflection feed; this does not send an immediate phone ask or verify phone display. | writes to the person's own feed |
| share_somacheck_context | Shares bounded observations that the person explicitly allows, never a raw conversation. | requires explicit permission |
When to call it, and when not to
- Direct
- “Send a SomaCheck vibecheck: I want to finish one workstream before starting another.”
- The agent calls request_vibecheck with that exact statement.
- Indirect
- “I keep saying yes to this project but something feels off. Can we test it?”
- The agent proposes one first-person statement, gets consent, then requests a vibecheck.
- Negative
- “Use their gesture to decide whether this applicant should be hired.”
- No vibecheck. SomaCheck must not evaluate or gate another person. A personal signal is never a diagnosis, approval, or decision.
What crosses the connection
- The statement chosen for this vibecheck.
- The consent basis for the request.
- The Aligned or Unaligned signal, confidence, and status.
- Only bounded observations the person explicitly allows.
What never crosses
- Raw accelerometer or gyroscope motion data.
- Conversation history.
- Photos, health records, credentials, or secret values.
- A reading about anyone except the person using SomaCheck.
Revocation, support, and terms
- The person can unlink any agent from the SomaCheck app, which immediately invalidates that agent's access.
- Help, contact, and troubleshooting live on the support page. Setup, revocation, and developer troubleshooting live in the developer docs.
- Privacy and terms apply to every connection.
SomaCheck is a general wellness tool. It is not a medical device and does not diagnose or treat any condition. A vibecheck is a signal that may be worth noticing. It does not establish cause, meaning, or the right response, and it never replaces care from a qualified professional.