Skip to main content
Open Source & Early Access

"Hey AI, I need to
"

Stop building internal tools. Just talk to your AI. It handles the work, generates the UI, and asks when it needs you.

Connects to

Problem

Internal tools become debt the moment you ship them

Nobody wants to maintain someone else's Retool app. The original author left. The API got deprecated. And now you're stuck debugging JavaScript embedded in a drag-and-drop canvas.

Admin Dashboard
by @mike

Revenue

$42,350$--,---

Users

1,247NaN

Orders

892undefined

Growth

+12%

Monthly Revenue

Failed to load

Recent Users

john@acme.com
jane@startup.io[Object]
sarah@corp.co
mike@dev.orgnull
Order Customer Amount Status
#4521 Acme Corp $2,400 Paid
#4520#---- TechStart Inc[Object] $1,200$NaN PendingError
#4519 StartupXYZ $99 Paid
8 errors

What if you never had to build—or maintain—internal tools again?

The solution

What if you never had to build them?

Just tell your AI what you need. It generates the UI, fetches the data, and asks when it needs you.

Use case: Customer refund

"Process a refund for order #4521"

The agent looks up the order, checks the customer history, and generates a refund form with all the details pre-filled. You just review and approve.

Stripe integration · Form widget generated · Approval required
Support Agent Idle
You

Process a refund for order #4521. Customer says item arrived damaged.

Found the order. Here's the refund form:

Order ID #4521
Customer john@acme.com
Amount $149.00
Item arrived damaged
Use case: Data analysis

"Show me failed payments this week"

The agent queries your database, displays the results in a sortable table, and lets you select rows for bulk actions. No SQL knowledge required.

Postgres query · Table widget generated · Selectable rows
Finance Agent Idle
You

Show me all failed payments from this week

Found 5 failed payments. Select rows to retry:

Customer Amount Error
Acme Corp $2,400 Card declined
StartupXYZ $99 Insufficient funds
DevShop Inc $499 Card expired

2 of 5 selected

Use case: Reporting

"Generate this month's revenue report"

The agent pulls data from Stripe, visualizes it with charts, and asks if you want to export or share with the team. Full report, zero manual work.

Stripe analytics · Chart widget generated · Export options
Revenue Agent Idle
You

Generate the monthly revenue report for December

Here's your December revenue report:

Total Revenue

$127,430

New Customers

+48

Growth

+12.3%

JulAugSepOctNovDec

Zero maintenance: Every interface is generated fresh. No dashboards to update. No forms to maintain. The AI creates exactly what you need, when you need it.

But there's more

Your AI messages you first

Like a colleague tapping your shoulder. Set triggers—cron, webhooks, events—and your agents reach out when something needs attention. You respond when you're ready.

Cron
Webhook
Event
Inbox
2 awaiting
Support Agent

3 tickets overnight — review drafts?

now Cron
Billing Agent

Acme Corp payment failed — send grace email?

2m Stripe
CI Agent

PR #421 merged — tests passed

5m GitHub

Your turn

Build agents in minutes

Chat with Copilot, it writes the agent. Pure JavaScript you can read, edit, and extend.

1 Just ask

Describe what you need

Talk to Copilot like a colleague. It understands your intent, proposes changes, and generates tools in real-time. Review the diff, then apply or reject—you're always in control.

Copilot
Idle
You

Proposed changes
+
+
+
2 Give it superpowers

Readable, editable code

Every tool is a JavaScript function with typed params and returns. Use context.resources to query Postgres, call Stripe, and more.

Postgres MySQL Stripe GitHub Intercom
getFailedPayments.js Tool
// Params: { hours: number }// Returns: { payments: Payment[] } const { hours } = paramsconst stripe = context.resources.stripe const payments = await stripe.paymentIntents.list({  created: { gte: Date.now() - hours * 3600000 },  limit: 100}) const failed = payments.data.filter(  p => p.status === "requires_payment_method") return { payments: failed }
3 Ship it

Set the rules, let it work

Choose your LLM (OpenAI, Anthropic, Google). Set which tools require human approval. Configure triggers—cron, webhooks, or events. One-click deploy with semantic versioning.

Agent settings v1.2.0
retryPayment() Owner only
notifyTeam() Auto-approve
Every day at 9:00 AM

Zero maintenance

UI that builds itself

Forms, tables, charts, approvals—generated fresh for each task. Nothing to maintain.

Forms

Text, numbers, dates, dropdowns, checkboxes—whatever the task needs, with built-in validation.

Tables

Sortable, selectable rows. Pick one or many for bulk operations. No configuration needed.

Charts

Line, bar, pie—visualize any data instantly. No BI tool required.

Approvals

Confirm, modify, or reject. Dangerous operations require human sign-off.

Result: Your team talks. AI handles the UI. No Retool. No React dashboards.

Production ready

Built for developers. Ready for enterprise.

Approval workflows

Pause execution until a human approves. Configure per-tool: owner only, any member, or self-approval. Modify parameters before proceeding.

Fine-grained permissions

Role-based access control at the tool level. Define who can run what, and which operations require approval.

Secure database access

Connect Postgres and MySQL from your VPC. Deploy a lightweight connector, outbound-only. No firewall changes, no exposed ports.

Durable execution

Workflows survive restarts, deploys, and outages. State recovery is automatic. Long-running tasks handled gracefully.

Multi-LLM

OpenAI, Anthropic, Google. Use the right model for each agent. Switch providers without changing your tools.

Vim mode

Full Vim keybindings in the code editor. Because real developers don't use mice. Escape to normal mode, you know the rest.

vim
~
~

Full transparency

Open source, Apache 2.0

Self-host or use our cloud. Audit every line. No vendor lock-in.

bash
$

Ready?

"Hey AI, let's get started."

Deploy your first AI agent in minutes. Free to start, open source forever.

Open source. Self-host or use our cloud.