TrustPin AI tools

Add TrustPin certificate pinning with your AI coding agent

An Agent Skill that teaches AI coding agents to integrate, review, and automate TrustPin certificate pinning in iOS, macOS, Android, Flutter, and React Native apps (bare and Expo).

Once installed, ask your agent:

Install

Claude Code

Run these in a Claude Code session in your app project:

/plugin marketplace add trustpin-cloud/ai-tools
/plugin install trustpin@trustpin

The same from a terminal:

claude plugin marketplace add trustpin-cloud/ai-tools
claude plugin install trustpin@trustpin

Claude (web and desktop)

Download trustpin-integration.skill (and trustpin-cicd.skill for CI/CD automation) from the latest release and add them under Settings, Capabilities, Skills.

Cursor, GitHub Copilot, Codex, and other agents that read Agent Skills

Copy the skill folders into your project:

git clone https://github.com/trustpin-cloud/ai-tools
mkdir -p .agents/skills
cp -r ai-tools/skills/trustpin-integration ai-tools/skills/trustpin-cicd .agents/skills/

.agents/skills/ is the shared project location these agents read. Agent-specific locations also work: .claude/skills/, .cursor/skills/, .github/skills/. Check your agent's documentation if the skill is not picked up.

Agents without skills support

Keep the folder in your repository and add this line to AGENTS.md:

When working with TrustPin or certificate pinning, read `.agents/skills/trustpin-integration/SKILL.md` first.

Check that it is active (Claude Code)

Share it with your whole team (Claude Code)

Commit this to your app's .claude/settings.json:

{
  "extraKnownMarketplaces": {
    "trustpin": {
      "source": { "source": "github", "repo": "trustpin-cloud/ai-tools" }
    }
  },
  "enabledPlugins": { "trustpin@trustpin": true }
}

Claude Code reads these entries only after each teammate accepts the trust prompt for the folder. Enabling the plugin still installs it from the marketplace the first time.

Use it

The agent follows the same workflow on every platform:

  1. Detects the platform and the HTTP client your app already uses (URLSession, Alamofire, OkHttp, Retrofit, Ktor, Dio, package:http, fetch).
  2. Checks the minimum requirements and stops to ask instead of raising deployment targets or toolchain versions.
  3. Lists the hosts your code connects to, so you can confirm each one is registered in your TrustPin project. In strict mode an unregistered host is refused.
  4. Adds the SDK, the config file, the setup call, and wires pinning into your existing client. It does not add a second networking library.
  5. Verifies with you: a request to a registered host should succeed, and one to an unregistered host should fail.
  6. Reports the files changed, the host list, and the steps still open.

What you do and what the agent does

The agent, in your codebaseYou, in the dashboard or the CLI
Detects the platform and HTTP clientCreates the account and the project
Adds the SDK dependencyChooses key management
Creates the config file with the three project valuesAdds domains and their pins
Adds the setup code and the readiness gatePublishes (signs) the configuration
Wires pinning into the HTTP clientCopies Organization ID, Project ID, and Public Key
Inventories the hosts the app callsHolds the master password, private key, and API token

Before you start

Have a TrustPin project ready, or let the agent walk you through it. Sign in at app.trustpin.cloud, create a project, choose key management, add your domains and pins, then apply changes and publish. Applying changes only saves them. Nothing reaches devices until you publish, and a missing publish is the most common reason a new integration reports domainNotRegistered. The full guide is at docs.trustpin.cloud.

Give the agent your Organization ID, Project ID, and Public Key. These three values are not secrets. If you have not got them yet, the agent writes placeholders and tells you setup fails until they are replaced.

Other things you can ask

Platforms and requirements

PlatformRequirementsHTTP clients covered
Swift (iOS, macOS)iOS 15+, macOS 13+, Swift 6.1+, Xcode 16.3+URLSession, Alamofire, system-wide URL protocol
Kotlin (Android)Android API 25+, Kotlin 2.3.0+, Java 11+OkHttp, Retrofit, Ktor (OkHttp engine), HttpsURLConnection
FlutteriOS 15+, Android API 25+, macOS 13+Dio, package:http
React Native (bare and Expo)React Native 0.85+ with the New Architecture, Node 22.11+, iOS 15+, Android API 25+Plain fetch, pinned natively with no client wiring
Expo Go cannot run pinning because it is native code. Use a development build.

If your project is below a minimum, the agent stops and tells you what would need to be raised. It does not upgrade your toolchain as a side effect.

Out of scope for the skill: the REST API, self-hosted configuration URLs, FIDO-protected keys, and server-side JVM use. See docs.trustpin.cloud or contact support.

What the skill will and will not do

Secrets

It never asks you to paste your API token, master password, or a private key, and never writes them to a file in your repository.

Publishing

Publishing a configuration makes it live for every installed app. The agent never runs trustpin-cli projects sign without your explicit go-ahead, and offers --dry-run first.

Pinning stays on

It keeps strict mode for anything that ships, never falls back to an unpinned client when setup fails, and never fixes a pinning error by weakening pinning.

No hidden behavior

The skill is instructions and reference text. It adds no MCP server, no hooks, and no background process.

The bundled script scripts/find_hosts.py runs only when you or the agent start it. It reads source and config files in your project and prints the hostnames it finds. It makes no network requests and writes no files. It sees only literal URLs, so the agent also checks hosts built at runtime or loaded from remote config.

The agent describes what it did (which client is pinned, for which hosts, in which mode). It does not claim that your app meets any security standard.

Pin rotation and the CLI

For rotation and CI the agent uses the TrustPin CLI. Install it with Homebrew:

brew tap trustpin-cloud/trustpin-cli
brew trust trustpin-cloud/trustpin-cli   # one-time, required on Homebrew 6.0+
brew install trustpin-cli

Authenticate with a personal access token you create at app.trustpin.cloud, by running trustpin-cli configure yourself and entering it at the prompt. For CI, supply it from your CI secret store as described in the DevOps guide. The agent never asks for the token, the master password, or a private key.

The safe rotation order is: publish the new pin first, deploy the new certificate second. Keep the old and new pins active together during the overlap, and add the new pin well before the old certificate is replaced, because an app picks up a new configuration only when it is next opened. Many certificate providers generate a new key pair at renewal, which changes the SPKI pin.

Command reference and automation guide: docs.trustpin.cloud/cli.

Update, remove, and versions

Update

claude plugin marketplace update trustpin
claude plugin update trustpin@trustpin

Then run /reload-plugins in a running session. If you copied the skill folder, pull the repository again and copy it over.

Remove

claude plugin uninstall trustpin@trustpin
claude plugin marketplace remove trustpin

Verified against

ComponentVersion
TrustPinKit (Swift)6.4.0
kotlin-sdk (Android)6.4.0
trustpin_sdk (Flutter)6.4.0
@trustpin/react-native6.4.0
trustpin-cli6.0.0

If your installed SDK behaves differently from what the skill says, the SDK is the source of truth. The API references are the most current: Swift, Kotlin, Flutter, React Native. Tell your agent what differed, and tell us.

Troubleshooting the skill itself

Support and licensing

The skill is provided under the TrustPin Binary License Agreement.