Building epilot Apps from your terminal, with a little help from AI agents Epilot has released an upgraded CLI that lets developers build and deploy apps from the terminal, with AI agents like Claude able to drive the entire workflow. The CLI includes read-only and anonymized tokens for safe agent access, and new app facades scaffold, develop, and deploy apps directly into the epilot platform. A few months ago we shipped the epilot CLI , and it quietly became one of my favorite tools. One command, npx epilot , gives you every single epilot API operation in your terminal: entities, journeys, workflows, pricing, files, permissions, 50+ APIs. Interactive pickers if you're exploring, --json and --no-interactive if you're scripting. It also turned out to be a perfect match for AI agents like Claude. Agents are great at driving CLIs: they discover operations, read the help, make calls, parse the JSON. No custom integration or MCP server needed, the CLI is the integration. And because handing an agent live CRM access is a scary idea, the CLI ships with two safety nets, both enforced server-side: A session that physically cannot write. The restriction is baked into the token, so the bearer can't turn it off. epilot auth login --readonly A token that additionally gets all PII anonymized in every response epilot access-token createAccessToken -d '{ "name": "AI agent token", "read only": true, "anonymize": true }' Read-only plus anonymized means an agent can explore, analyze and report on your real org all day, and the worst it can do is read data it can't even de-anonymize. Now we've made the CLI even better. On top of the raw API commands, we added app facades : a set of high-level epilot app commands that take you from an empty folder to a working app installed in your org. And that's what this post is really about, because apps are where the fun is. epilot is very configurable out of the box: journeys, workflows, automations, pricing. But at some point every team hits a wall, something the UI simply doesn't offer. That's what Apps are for. They extend the platform with your own UI and logic, running right inside the product. Everything an app is its components, configuration and assets is described in a single manifest.json . Until now, getting from "I have an idea" to "it's running in my org" meant a fair amount of manual manifest-wrangling. The App CLI turns it into four steps. epilot app init my-app cd my-app You get a ready-to-go monorepo: the manifest.json , a components/ folder, build tooling already wired up, and a SKILL.md with instructions written specifically for AI agents more on that in a minute . epilot app add-component An interactive picker lets you choose what to build: CUSTOM CAPABILITY CUSTOM PAGE CUSTOM JOURNEY BLOCK CUSTOM PORTAL BLOCK Each choice lands as a working component from the epilot-dev/app-templates https://github.com/epilot-dev/app-templates repo, registered in your manifest, ready to build. epilot app dev --component my-tab This is my favorite command: it serves your component from localhost inside the actual epilot UI . You edit code locally, hit refresh, and see your tab or widget rendered in the real product, with real data, next to real features. No deploy loop while iterating. When you're done, epilot app dev --off removes the override. epilot app validate epilot app deploy --dry-run see what would change epilot app deploy ship it deploy reads the manifest, creates or updates the app, uploads your built assets, and handles versioning for you. If the latest version is already public and therefore locked , it automatically creates a new one. epilot app versions shows the history. Here's where the two halves of this story click together. Remember the SKILL.md that epilot app init scaffolds? It teaches AI agents the project structure, the manifest format, and the full workflow. Claude Code picks it up automatically. So building an epilot App in 2026 actually looks like this: epilot app init my-app && cd my-app claude Then you describe what you want in plain language: "Add a custom tab to the contact page that shows all meters linked to the contact, with their last readings in a table." And the agent takes it from there: SKILL.md to understand the project epilot app add-component to scaffold a custom entity tab epilot app dev so you can watch it live inside epilot epilot app validate and epilot app deploy You review, the agent types. And this isn't just a developer workflow: colleagues who wouldn't call themselves engineers have shipped working apps this way. The CLI does the heavy lifting, the agent does the plumbing, and the human decides what to build. npx epilot --help explore the CLI epilot auth login --readonly safe mode for agent sessions epilot app init my-first-app start building If you build something with it, or let Claude build something with it, I'd love to hear how it goes. 🚀