Support · Haptics Lab

Support: Haptics Lab

Support for Haptics Lab: contact, a haptic that does not play, Generate, the connection of an AI agent, Haptics Lab Pro, your API key, and the generated code.

This page gives the answers to frequent questions about Haptics Lab. If your question is not here, send us an email.

Contact

For a question or a problem, send an email to info@temperanda.com. Tell us the model of your iPhone, the version of iOS, and the version of the app. Settings, About in the app shows the version of the app.

A haptic does not play

Examine these items in this order. They are the items of the part "On this iPhone" of the checklist in the app.

  1. This device has no haptic hardware.

    A haptic needs an iPhone with haptic hardware. The simulator and iPad have no haptic hardware. Core Haptics needs iPhone 8 or later. On a device with no haptic hardware, the visualizers still show each haptic.

  2. System Haptics is off.

    Apple says that feedback plays only when the system Haptics setting is on. Open the Settings app of the iPhone, then Sounds & Haptics. Set System Haptics to on. Apple does not say if Core Haptics obeys this setting.

  3. Vibration is off in Accessibility.

    Apple documents a switch that stops all vibrations. Open the Settings app of the iPhone, then Accessibility, then Touch. Set Vibration to on. The page Turn off vibration on iPhone of Apple describes the switch.

  4. Low Power Mode is on.

    Apple does not document an effect of Low Power Mode on haptics.

  5. Silent mode is on.

    Apple does not document an effect of Silent mode on haptic events. Silent mode can stop the audio of a pattern.

  6. The app is not in the foreground.

    Feedback plays only while the app is in the foreground. The app stops the haptic engine when it goes to the background.

  7. The haptic engine stopped or failed.

    The diagnostics page shows the engine state, the last error, and the log. Open Settings in the app, then Diagnostics.

The app has the full checklist, with the causes in your own code and a live status for some items. Open Settings in the app, then "Why does a haptic not play?". The route of the checklist is settings/why-no-haptic.

Generate

Generate shows "No model is available"

This iPhone has no Apple model that the app can use. The on-device model needs iOS 26 or later and Apple Intelligence. If the iPhone does not have them, add your API key from Anthropic or OpenAI. Open Settings in the app, then AI API key.

A request takes a long time

The on-device model can need more than 30 seconds for one pattern. To stop the request, tap Cancel.

The service did not accept your API key

Open Settings in the app, then AI API key. Save the key again, then tap Get the list of models. When the key works, the panel shows "The service accepted the key."

The order of the models

In Settings, the row Model for Generate selects the model. In the automatic mode, the app uses the model of your API key first. Then it uses the model on this iPhone.

Connect an AI agent

The MCP server of the app lets an AI agent on your computer play haptics on your iPhone.

Before you start

  • The iPhone and the computer must be on the same Wi-Fi network.
  • Guest, office, and hotel networks can block the connection with client isolation. If the agent cannot connect, use a different network.
  • The app must stay in the foreground. The server stops when the app goes to the background.
  • iOS can ask for permission to use the local network for Haptics Lab. Allow it.
  • macOS can ask for permission to use the local network for Claude Desktop or Cursor. Allow it.

Steps

  1. In the app, open Agents, then Connect.
  2. Turn on the switch MCP server.
  3. The screen shows the Address row and the Token row. In the texts below, replace <url> with the value of the Address row, for example http://192.168.1.20:8765/mcp. Replace <token> with the value of the Token row.
  4. Under Setup, select your agent. The screen shows the setup text for that agent. Tap Copy, then add the text to your agent.

Claude Code

Claude Code connects to the server with this command. Run it in a terminal on the computer. The MCP page of Claude Code gives more information.

claude mcp add --transport http haptics-lab <url> --header "Authorization: Bearer <token>"

The same server as JSON. Put this text in the file .mcp.json of your project:

{
  "mcpServers": {
    "haptics-lab": {
      "type": "http",
      "url": "<url>",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

Cursor

Nobody tested this setup text with Haptics Lab yet. Put the text in the file mcp.json of Cursor. The MCP page of Cursor tells where that file is.

{
  "mcpServers": {
    "haptics-lab": {
      "url": "<url>",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

Claude Desktop

Nobody tested this setup text with Haptics Lab yet. The text starts the bridge mcp-remote. The bridge needs Node.js for npx. Put the text in the file claude_desktop_config.json. The page about local servers tells where that file is.

{
  "mcpServers": {
    "haptics-lab": {
      "command": "npx",
      "args": ["-y", "mcp-remote@0.14.3", "<url>", "--allow-http", "--header", "Authorization: Bearer <token>"]
    }
  }
}

Test the connection

Run this command on the computer. Replace <address> with the IP address of the Address row, and <token> with the value of the Token row. The iPhone plays a haptic, and the list Calls of the Connect screen shows the call.

curl -sS -X POST http://<address>:8765/mcp \
  -H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" -H "MCP-Protocol-Version: 2026-07-28" \
  -H "Mcp-Method: tools/call" -H "Mcp-Name: play_haptic" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"play_haptic","arguments":{"action":{"type":"impact","style":"rigid","intensity":0.8}},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"curl","version":"8"},"io.modelcontextprotocol/clientCapabilities":{}}}}'

The server accepts at most 10 play calls in 10 seconds. It rejects a haptic that plays for more than 30 seconds.

Stop the access of an agent

To stop all agents, turn off the switch MCP server. To stop an agent that has the token, tap Make a new token. The old token then stops working. Give the new token only to the agents that you trust.

Haptics Lab Pro and Restore

The app has no ads, and each function is free. After each 10 minutes of use in the foreground, the app shows a message that asks you to support the app. One purchase, Haptics Lab Pro, removes this message. Open Settings in the app, then Haptics Lab Pro, then buy the product. You can also tap Get Pro in the message.

The purchase is for your Apple Account. On a different iPhone, or after you install the app again, open the same screen and tap Restore purchase.

Your API key

Generate can use your own API key from Anthropic or OpenAI. The key stays in the Keychain on this iPhone. Before the app sends your description to a service for the first time, it asks for your permission.

To remove the key, open Settings in the app, then AI API key, then Remove the key. iOS can keep the key in the Keychain after you remove the app. When you install the app again, the app removes that old key before it uses a key.

Generated code

The default minimum version of the generated code is iOS 18.0. The code has an availability check for each API that is newer than the minimum. To change the minimum, open Settings in the app, then Minimum iOS version in the part Export.

Privacy

The app has no account and no analytics of its own. The privacy policy gives each part of the app that sends data, the data, and the receiver.

Requirements

  • An iPhone with iOS 18 or later.
  • Generate with no key needs iOS 26 or later and Apple Intelligence.
  • Connect needs a computer on the same Wi-Fi network.