IDE guide

The IDE that ships the app.

Piye IDE is a desktop editor with an agent that can operate the whole workbench: the editor, terminal, Git, tests, debugger, simulators, deploy, and operations. It opens the same project a founder builds in Builder, so the hand-off is just opening the folder.

Monaco editorAsk / Architect / Build / DebugTab + ⌘KiOS + AndroidDeploy + storesOperationsMCPBYOK + local

Start

Piye IDE

Piye is built on Electron, React, and Monaco, and Piye owns every line of its interface. It is not a VS Code fork and does not try to look like one. What you get on day one, with no extensions: TypeScript and JavaScript language services, a real terminal, Git, search, debugging, testing, a ports view, Docker status, simulators, deploy, and an agent that can use all of it.

AI native

The agent, inline assist, and operations awareness are part of the workbench, not plugins.

Built in beats extension

If most developers use it weekly, it ships in the box.

Speed is a feature

Cold start under a second is the target. Heavy work runs in workers.

Start

How Piye is different

If you come from Cursor, Zed, or VS Code, the editor will feel familiar within minutes. The difference is everything around the editor.

What feels familiarWhat Piye adds
EditingMonaco, tabs, splits, palette, multi-cursorTab ghost text and ⌘K on the live buffer, with next-edit hints
AgentChat with your codebase, file edits with diffsFour modes with hard limits, and piye_action to operate the IDE itself
TeamGit, branches, pull requestsA no-code Builder on the same folder for the non-technical side
MobileRun Expo or React Native from a terminaliOS Simulator and Android emulator side by side, inside Piye
ShippingDeploy from CLIs and CIDeploy panel for web hosts and app stores, with env sync by key name
ProductionDashboards in other tabsOperations: live probes of hosts, CI, stores, and Stripe in one panel
ToolsMCP via JSON configOne-click MCP Connect with browser OAuth, no JSON editing
PrivacyBring your own keyBYOK, Piye Cloud, and Privacy Mode with local Ollama

What Piye is not

Not a VS Code skin, not a browser-only IDE, and not a teaching tool. Remote SSH, containers, and Live Share are not in version one.

Start

Workbench tour

my-app · Developer
1
2

Explorer

app

  page.tsx

  layout.tsx

components

lib

.piye

package.json

3
page.tsxlayout.tsx

Tab to accept

5

Terminal · zsh

❯ pnpm dev

✓ Ready on localhost:3000

6main ↑10 problemsClaude Sonnet 5 · Piye Cloud
1Activity bar: Explorer, Search, Git, Run, Apps, Deploy2Sidebar: the view you picked3Editor: Monaco, tabs, splits, Tab ghost text4Agent panel: Ask, Architect, Build, Debug5Panel: terminal, problems, output, ports6Status bar: branch, problems, model

Panels can be resized, collapsed, and popped out into their own windows. View, Reset Workbench Layout brings everything back.

Start

Open a project

  1. 01

    Open a folder

    File, Open Folder. Add more with Add Folder to Workspace.
  2. 02

    Or clone

    Pick a repository from your GitHub on the Welcome screen.
  3. 03

    Or switch from Builder

    Open the project name menu in Builder and choose Developer. Same folder, now in the IDE.

Tip

Piye stores its own project state in .piye/. Commit the parts you want to share (rules, launch configs, tasks) and ignore the rest. See The .piye folder.

Edit

Editor

  • Monaco with language services for TypeScript, JavaScript, HTML, CSS, JSON, and Markdown.
  • Tabs, editor groups, and ⌘\ to split right. Join All Editor Groups to merge back.
  • Breadcrumbs and an outline of symbols for the current file.
  • Format on save, auto save, word wrap, minimap, and font settings under Settings, Editor.
  • A Simple Browser for quick looks at docs or a local URL.

Edit

Tab and Cmd+K

Tab: ghost text

As you type, Piye suggests the rest in grey. Press Tab to accept. A thin next-edit hint may follow in the same file.

⌘K: inline edit

Select code, press ⌘K, and say what to change. The edit lands in place as a diff you accept.

Note

Both work on the live Monaco buffer, including unsaved changes, and use the same model routing as the agent.

Edit

Diffs and merge conflicts

  • Compare with Saved and Compare with Clipboard from the File menu.
  • Resolve Merge Conflicts opens a dedicated view for conflicted files.
  • Agent file cards open as diffs before you accept them.

Agent

Agent panel

Open it with ⌘⇧A, or pop it out into its own window. Pick a mode and a model, attach files or images, and talk to your project. The agent sees what you see, so you never paste the file you are looking at: say "this" or "here" and it quotes your visible range.

Agent

Agent modes

Ask

Answers and explains, read-only.

Can: Read files and live buffers, search, git hunks, diagnostics, terminal, tests, web search, fetch pages, inspect localhost.

Cannot: Create, edit, delete, run shell, or operate the IDE.

Architect

Plan only.

Can: Read everything Ask can, and produce a plan.

Cannot: Edit, run shell, or operate the IDE. Switch to Build to implement.

Build

Implement.

Can: File cards for create and edit, approved one-shot commands, piye_action to run Expo, Next, tests, deploy, git, and the debugger. MCP tools.

Cannot: Delete without your approval.

Debug

Reproduce and fix.

Can: Diagnose, make surgical edits, short commands, piye_action.

Cannot: Create files, refactor, or start long-lived servers with shell.

The agent operates the IDE

In Build and Debug, the agent calls piye_action instead of telling you which button to press: start Expo or Next, boot a simulator, run tests, Deploy Now, stage a hunk, commit, reveal a line. After a patch it runs the failing test and only says done when tests and problems are clear.

Agent

Review and Auto

SettingCreates and editsDeletesCommands
ReviewWait for Accept on each file cardAlways waitYou approve each one
AutoWritten as proposedAlways waitYou approve each one

Accepting a card applies the edit to the open tab and writes disk, so the tab is clean afterwards. Closed files are written to disk directly.

Agent

What the agent sees

Each turn starts with a live snapshot of the workbench. No copy and paste needed.

ContextWhat is in it
EditorOpen tabs, dirty flags, focused file, cursor, visible range, unsaved buffers.
TerminalLast 200 lines per session (up to 16k characters), Piye and Classic sessions.
GitBranch, dirty files, last commits, and the actual working-tree hunks.
Problems and testsDiagnostics, discovered tests, pass and fail, failing file and line.
DebugSession status, paused location, call stack, breakpoints, console tail.
PortsListening ports, process names, local URLs. Avoids starting a second dev server.
Deploy and operationsHost, link, production URL, env names (never values), build log, live probes.
Project rules.piye/rules.md, AGENTS.md, and .piye/rules/*.md.

Secrets stay secret

Env values, cookies, and query secrets are stripped before anything reaches a model. The agent never prints a value, even when it reads a file that contains one, and will not propose committing .env.

Agent

Checkpoints and undo

At the start of every turn Piye records a checkpoint: your dirty buffers and the Git HEAD. Undo on a turn restores those buffers and reverts the file cards you accepted in it.

Undo is per turn, so you can let the agent try something bold.

Agent

Project rules

Put conventions the agent should follow in .piye/rules.md, AGENTS.md, or several files under .piye/rules/. They are injected into every turn, capped so they never crowd out your code.

.piye/rules.md
# House rules
- TypeScript strict. No any.
- Server components by default; "use client" only for interaction.
- Tailwind for styling. No inline styles.
- Every API route validates input with zod.
- Run pnpm test before saying done.

Run

Terminal

Piye sessions

Shell integration (OSC 133) groups output into blocks per command, with an AI bar to explain or fix a failing command.

Classic sessions

Raw xterm, for tools that want a plain terminal.
  • ⌘` toggles the panel, ⌘⇧` opens a new terminal. Split Terminal sits next to it.
  • ⌘⇧T pops the terminal into its own window.
  • Commands the agent runs with approval use a separate process and do not appear in your terminal. IDE actions like starting Expo write into the terminal you already have.

Run

Git and source control

Branches

Branch picker in the status bar and source control view.

Hunks

Stage individual hunks, commit, push, and see a timeline of changes.

Agent aware

The agent reads real hunks and runs real git. It never invents a successful push.

Run

Testing

The Testing panel discovers tests in your project and runs them from the panel or the editor gutter. The agent uses the same commands, so "fix the failing test" means it can run it, patch, and run it again.

Results feed the agent as passed, failed, and the failing file and line.

Run

Run and Debug

Run and Debug speaks the Debug Adapter Protocol. Configurations live in .piye/launch.json. Set breakpoints in the gutter, step through code, and read variables, the call stack, and the debug console.

.piye/launch.json
{
  "configurations": [
    {
      "name": "Next.js: server",
      "type": "node",
      "request": "launch",
      "runtimeExecutable": "pnpm",
      "runtimeArgs": ["dev"],
      "cwd": "${workspaceFolder}"
    }
  ]
}

Run

Problems and tasks

  • Problems collects diagnostics from language services. Click one to jump to the file and range.
  • Tasks run your package scripts and anything in .piye/tasks.json. ⌘⇧B runs the build task.
  • Output shows logs from tasks, extensions, and Piye itself.

Run

Ports

Ports lists every listening TCP port on your machine with the process name and a local URL to open. The agent checks it before suggesting npm run dev, so you do not end up with two servers fighting over port 3000.

Ship

Apps, devices, stores

The Apps view has four tabs: Project, Devices, Stores, and Setup. Piye detects each app from its package.json, including nested apps/, packages/, and mobile/ folders in a monorepo.

DetectedFromRun means
Mobile Expoexpo or expo-routerBoot the real iOS Simulator or Android emulator. Start Expo runs Metro with a QR code.
Mobile NativeReact Native, CapacitorRun on simulators and emulators.
Desktop Electronelectron, Electron Forge, electron-vite, TauriOpen a native window, not a phone.
Website Webnext or vite without a native runtimeOpen the URL in your browser.
.piye/app.json
{ "runtime": "expo" }

Pin the stack with .piye/app.json to skip detection. Stores connects App Store Connect, Google Play, and EAS so you can submit builds without leaving Piye.

Note

Device preview is for native apps. Websites always open in a browser, and localhost:8081 is Metro's status page, not your app.

Ship

Deploy

Deploy shows the selected host, sign-in state, the linked project, production URL, environment variable names with sync status, Docker engine status, and the build log. Deploy Now ships it.

VercelNetlifyCloudflare PagesRailwayFly.ioHostingerAWS AmplifyGoogle Cloud RunScalewayCoolify (your server)

EU sovereign hosting

Scaleway, or Coolify on your own Hetzner or OVH server, keep the app in Europe.

Env by name

Variables sync by key name. Values never appear in the panel, the log, or the agent.

Docker: Engine offline

That means Docker Desktop is not running. It is not a failed deploy: Deploy Now can still build remotely, for example on Railway. If a deploy fails, the agent quotes the error file and line from the log for you.

Ship

Operations

Operations (⌘⇧O) is your production radar. It probes the services your project actually uses and streams what changed: failed deploys, CI runs, store reviews, Stripe events, new CVEs.

Probe statusMeans
okThe query succeeded. It does not mean everything is fine in production.
authPiye needs you to sign in to that service.
errorThe query failed. Retry or check the service.
blindPiye cannot see that service yet.

The header's Watching N is the number of live adapters being probed (Railway, Vercel, Hostinger, GitHub, Expo and EAS, Stripe, the stores). Operations also helps set up SEO, analytics, consent, and edge configuration by writing the code into your project.

Pop it out as a window and keep it on a second screen.

Extend

MCP integrations

Press Connect on a marketplace card. Piye writes the launcher into its own MCP config and runs the sign-in. No API key forms, no JSON editing.

ServiceHow it connects
Notion, Linear, Stripe, Vercel, HostingerBrowser OAuth window. Connected when it finishes.
GitHubUses gh auth login or GITHUB_TOKEN.
PostgresNeeds DATABASE_URL in the environment Piye was launched from.
FigmaEnable desktop MCP in Figma Dev Mode, then Connect.
SlackNeeds your Slack app client id and secret, with Piye's local redirect URL.
FramerPaste the URL from the Unframer plugin into the card.

Note

MCP tools attach in Build mode only. ready on a card means its tools are live for the next Build turn; failed shows the reason, and Retry reinstalls.

Extend

Extensions and OXP

Rolling out

OXP

Open Extension Protocol is Piye's native format. An OXP extension mounts its UI directly in Piye, with no iframe, and exposes AI tools the agent discovers automatically. One permission check covers both.

VS Code extensions

Existing VSIX extensions run in a compatibility host for the long tail: themes, niche languages, vendor tools.

Extend

Models and keys

Reference

The .piye folder

PathWhat it holds
rules.mdRules for the agent. Also rules/*.md.
app.jsonPinned runtime for the Apps view.
launch.jsonRun and Debug configurations.
tasks.jsonExtra tasks beside your package scripts.
keybindings.jsonYour keyboard overrides.
mcp.jsonOptional project-scoped MCP servers. Connect writes the user config, not this.
blueprint.jsonThe Builder Blueprint map.
memory/Comm-Link and Builder memory, notes, build timings.
outbox/Emails your app sent in development.
brief/The original brief and logo.

Reference

Keyboard shortcuts

Shown for macOS. On Windows and Linux, ⌘ is Ctrl. Open the full list with ⌘⇧/ and override any of them in .piye/keybindings.json.

Command Palette⌘⇧P
Go to File⌘P
Go to Line⌘G
Toggle Agent panel⌘⇧A
Toggle Operations panel⌘⇧O
Toggle Terminal⌘`
New Terminal⌘⇧`
Terminal in new window⌘⇧T
Toggle Sidebar⌘B
Split Editor Right⌘\
Find⌘F
Replace⌘H
Find in Files⌘⇧F
Replace in Files⌘⇧H
Inline edit⌘K
Accept ghost textTab
Save⌘S
Save All⌘⇧S
Close Editor⌘W
New File⌘N
New Window⌘⇧N
Run Build Task⌘⇧B
Back / Forward⌃-
Settings⌘,
Keyboard Shortcuts⌘⇧/
Zoom in / out / reset⌘=-0

Reference

Pop-out windows

View, Open in New Window pops out the Agent, Operations, or Terminal. Each keeps working on the same project, so you can put the agent on one screen and the code on another.

Main windowAgent windowOperations windowTerminal window

Reference

Editions and roadmap

EditionIncludesFor
LiteCore editor, JS and TS, Git, AIPure editing
Web DefaultLite plus Tailwind, Prettier, ESLint, web languages, dev server, HTTP clientWeb developers
ProWeb plus Python, Jupyter, Docker, debug, database toolsFull stack, data, AI

On the way

  • Jupyter notebooks with real kernels from your own Python environments.
  • Built-in Tailwind IntelliSense, Prettier, and ESLint without extensions.
  • Inline blame, file history, and conflict resolution in Git.
  • An agent task queue for running several agents in parallel.
  • The OXP registry with signed packages.
© 2026 Piye TechnologiesPrivacyTermsCookiesSupportChangelog
IDE docs · Piye