Polaris is a full IDE that lives in your browser — with an AI agent sitting next to you the whole time.
Describe what you want. The agent reads your project, writes the files, and explains what it changed. Then Polaris boots your app right there in the browser — real npm install, real dev server, real terminal — no local setup, no containers to configure. When you're happy with it, push the whole thing to GitHub in one click.
Nothing to install. Nothing to configure. Just you and the next line.
Describe the app you want and Polaris scaffolds it, or paste a GitHub URL and bring an existing codebase in as-is. ⌘J to start something new, ⌘I to import, ⌘K to jump to any project you've touched.
A real editor on the left, an AI agent on the right. The agent has actual tools: it lists, reads, creates, updates, renames, and deletes files in your project, and can scrape a URL when it needs docs it doesn't have.
Chats open as tabs, so you can keep several threads going and switch between them like files. Nothing is ever lost — the full history is one click away.
You don't have to ask, either. Ghost-text completions appear as you type, and quick edit lets you select a block, describe the change, and watch it rewrite in place.
Flip to Preview. Polaris installs your dependencies and boots the dev server inside a WebContainer, with a full terminal attached. Your app runs in the same tab you wrote it in.
Export any project straight to a new GitHub repo — public or private, description included.
Plans and payment are handled by Clerk, right inside the app.
flowchart LR
A["💬 You describe a change"] --> B["⚡ Agent reads your project files"]
B --> C["✏️ It creates / edits / deletes files"]
C --> D["💾 Convex syncs the change instantly"]
D --> E["🌐 WebContainer reloads your running app"]
E --> F["🐙 Push to GitHub in one click"]
The agent runs as a durable background job on Inngest, so the editor never blocks and a long task survives a refresh. Cancel it mid-run and the job stops cleanly.
| Feature | |
|---|---|
| 🤖 | AI agent with real tools — reads, writes, renames, deletes files and scrapes the web for context |
| ⌨️ | In-editor AI — ghost-text completions and select-and-describe quick edits |
| 🌐 | Live preview — your app actually runs in the browser via WebContainers |
| 🖥️ | Real terminal — full xterm session wired to the running container |
| 📁 | File explorer + tabbed editor — create, rename, delete, organize |
| 💬 | Tabbed AI chats — multiple threads per project, all searchable |
| 🐙 | GitHub import & export — bring a repo in, push a project out |
| ⚡ | Real-time sync — Convex pushes every change to every open tab |
| 🔐 | Auth & billing — sign-in and Pro plans handled by Clerk |
| What it does | Tool |
|---|---|
| Web framework | Next.js 16 + React 19 |
| AI agent | OpenAI GPT-4.1 |
| Agent runtime | Inngest + Agent Kit |
| Real-time database | Convex |
| In-browser runtime | WebContainers |
| Terminal | xterm.js |
| Auth & billing | Clerk |
| Code editor | CodeMirror 6 |
| Web scraping (agent context) | Firecrawl |
| UI | Tailwind CSS v4 + shadcn/ui |
| Error monitoring | Sentry |
# 1. Clone the repo
git clone https://github.com/HarshiLMalani07/polaris.git
cd polaris
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp .env.example .env.local
# Fill in the values — see the table below
# 4. Start Convex (in its own terminal)
npx convex dev
# 5. Start Inngest (in its own terminal, needed for the AI agent)
npx inngest-cli@latest dev
# 6. Start the app
npm run devOpen http://localhost:3000.
# Clerk — auth and billing
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
CLERK_JWT_ISSUER_DOMAIN=
# Convex
CONVEX_DEPLOYMENT=
NEXT_PUBLIC_CONVEX_URL=
NEXT_PUBLIC_CONVEX_SITE_URL=
POLARIS_CONVEX_INTERNAL_KEY= # shared secret the agent uses to write to Convex
# AI — OPENAI_API_KEY powers the agent; the rest are optional
GEMINI_API_KEY=
GOOGLE_GENERATIVE_AI_API_KEY=
MISTRAL_API_KEY=
OPENAI_API_KEY=
# Inngest
INNGEST_DEV=1 # local dev only
# Firecrawl — optional, enables the agent's web scraping tool
FIRECRAWL_API_KEY=
# Sentry — optional
SENTRY_AUTH_TOKEN=Note: Clerk needs a GitHub OAuth connection enabled for import/export to work, and Clerk Billing with a
proplan for the Pro-gated features.
MIT — use it, learn from it, build on it. See LICENSE.
Contributions are welcome — start with CONTRIBUTING.md.







