Live in ChatGPT. See how it works

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.

WhereHow you connect
Claude.ai / Claude DesktopAdd a custom connector with the hosted URL, then sign in
ChatGPTLive in store. Find SomaCheck in the ChatGPT plugin store and install it, then sign in
Claude CodeInstall 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.
CodexRun the one-time link command from the app
  1. Step 1

    Connect once

    Link your assistant to your own SomaCheck app. You can unlink it at any time from the app.

  2. Step 2

    Your agent asks

    When words stall, it sends one first-person statement for you to test, with your consent.

  3. 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/mcp

For 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.

ToolWhat it doesBehaviour
request_vibecheckSends 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_resultReads the status or exact result for one request handle.read-only
get_vibecheck_contextReads recent completed gesture signals for this exact agent link.read-only
get_vibecheck_statusReads optional reflection-feed status and available capacity, not a required quota.read-only
post_vibecheck_statementStocks 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_contextShares 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.