Skip to main content

AI Agent

Build custom plugins without writing any code.

Written by Ryan Kulp

Writing code is cool, but wouldn't it be cooler to type "build me a plugin showing populations around the world" and it Just Worked? Now you can.
​

Video demonstration:
​

Requirements

Agent currently requires an API Key from OpenRouter or Anthropic / Claude. You may alternatively use our MCP Server and Agent skills with any model (see "MCP Server" section below).

Load credits on the OpenRouter billing portal or buy Claude credits if you have higher rate limits.

Optionally, a free Tavily API key gives your agent access to web search and web page fetching, enhancing your agents capabilities.

In the near future you'll be able to purchase credits directly from TRMNL.

Quickstart

  1. Visit your TRMNL Account

  2. Toggle Agent on the left side, click Save

  3. Click the "Configure model, keys & usage" to open the settings form

  4. Add the API keys mentioned in the requirements section and click Save

  5. Visit Plugins > Private Plugins > New and click Save

  6. Click Edit Markup, then click the Agent tab

  7. Ask Agent to build whatever you want, or to guide you through the TRMNL framework generally

Again, a video demonstration is here.

How it works

TRMNL has developed a comprehensive system prompt written in plain English, which describe our platform's capabilities and design patterns in depth.

Whenever you interface with the Agent inside our private plugin interface, the agent has access to this context, which you may even ask it about.
​
In addition, the agent has been given access to a range of tools, including markup editing, settings updates, data refreshing, internet search, and a list of API endpoints to name a few. This empowers and grounds the agent in the "real world" to add value to your experience.

MCP Server (Advanced)

Prefer building plugins from your own editor with Claude, Codex, Cursor, or another AI tool?

TRMNL runs an MCP (Model Context Protocol) server at https://trmnl.com/mcp. There are two ways to connect to it:

  • Your account. You sign in from your AI tool, no key needed. The agent can work with your devices, playlists, mashups, plugin settings, private plugin markup and recipes, limited to what you allow.

  • One private plugin. You generate an MCP API Key on that plugin. The agent can read and write that plugin's markup, refresh its data, take screenshots, view merge variables and logs, change its settings, search recipes, and consult our design system docs. It can't see anything else.

If you're not sure, connect your account. You can limit it to a single plugin when you sign in.

Connect your account: Claude Code (CLI)

Run this in your terminal:

claude mcp add --transport http trmnl https://trmnl.com/mcp

Start a Claude Code session, type /mcp, pick trmnl and choose to authenticate. Your browser opens a TRMNL page titled "Connect an app to your account", where you choose:

  • What it can do. Reading your account, changing content and changing device settings start ticked. Deleting things, changing your profile, and installing apps start unticked, so tick those only if you want the agent to do them.

  • What it can reach. Your whole account, or only the devices and plugin settings you pick.

Click Allow and head back to your terminal. Then ask away: "show me my plugin's markup," "refresh my data and screenshot the full layout," and so on.

By default this registers the server for your current project folder only; add --scope user to make it available everywhere. The Claude Code desktop app reads the same configuration, so no extra setup is needed there.

Connect your account: Claude Desktop (chat app)

  1. Go to Settings > Connectors and click "Add custom connector."

  2. Name it TRMNL and paste https://trmnl.com/mcp as the URL.

  3. Click Add, then Connect, and approve the same TRMNL page described above.

Connect your account: other tools

Codex, Cursor, VS Code and most other MCP clients sign in the same way. Add https://trmnl.com/mcp as an HTTP (or "streamable HTTP") server and your tool opens the TRMNL sign-in page when it first connects.

Manage connected agents

Every tool you've signed in lives under Account > Connected agents, with what it can do and when it was last active.

  • Edit access changes which devices and plugin settings it can reach.

  • Revoke signs it out immediately.

  • To change what it can do (for example, to let it delete things), revoke it and connect again.

  • A connection unused for 30 days is signed out automatically. Your tool will ask you to sign in again next time.

Connect one plugin with an MCP API Key

  1. Open your private plugin's settings page (Plugins > Private Plugins > your plugin) and click Save.

  2. On the right side, find the MCP API Key section and click Generate MCP Key.

  3. Copy the key with the copy button. It starts with ps_mcp_ and only works for that one plugin.

Then connect with the key. In Claude Code:

claude mcp add --transport http trmnl https://trmnl.com/mcp --header "Authorization: Bearer YOUR_MCP_API_KEY"

In Claude Desktop, add a custom connector with this URL instead: https://trmnl.com/mcp?api_key=YOUR_MCP_API_KEY

For other tools, expand "MCP client config" under the key for a ready-made config snippet, or send the key in an Authorization: Bearer header.

Agent skills

MCP gives your tool access to TRMNL. Our agent skill teaches it how to build for TRMNL: the same rules and design system docs our built-in Agent uses. Install it from github.com/usetrmnl/trmnl-agent-skills. It works with Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and opencode. In Claude Code, run these two commands:

/plugin marketplace add usetrmnl/trmnl-agent-skills
/plugin install trmnl@trmnl-agent-skills

The install guide covers the other tools. Building your own app or script instead? trmnl.com/auth.md lists every way to authenticate with TRMNL.

Good to know

  • MCP API Keys are only available on private plugins you own. A recipe you installed as read-only doesn't get one.

  • Treat your MCP API Key like a password. Click Revoke Key on the same settings page to cut off any tool using it, then generate a new one.

  • Your account API key (from the Account page) is for our REST API and doesn't work with the MCP server. Use one of the two options above.

  • Requests are limited to 60 per minute per key or connected agent.

Frequently Asked Questions

Which models does this feature support?

Gemini, Codex, Claude Sonnet, Kimi, and even OSS models (e.g. Llama). Set a preferred model from your Account > Agent configuration.

How much does it cost to build a plugin?

We're seeing an average of $1-3 per plugin.

For example, plugin can be created with a single sentence prompt: make a daily deal plugin for meh.com. After thinking and developing for a couple minutes, Agent required us to provide a free Meh.com API Key, then we requested that the daily deal item's image be included. Total cost: $2.20 USD.

Can I publish plugins with this feature?

Not currently. Our team reviews several plugin submissions per day and we need to scale internal tools before we can handle the inevitable Agent-driven volume bump.

Can I use other llm models (including free ones)?

Yes. Agent uses Claude Sonnet 5 by default, but other state-of-the-art models like Gemini 3.1 Pro are excellent replacements. Feel free to experiment with any OpenRouter model ID. The free models on OpenRouter tend to be less capable and slower.

Troubleshooting

Agent isn't perfect. Send us a live chat or email support@trmnl.com if you discover any quirks.

Did this answer your question?