macaly.app.
Nothing is generated on your computer, and Macaly’s own agent never runs. The app lives in your Macaly workspace from the first file, so you can open it in the Macaly editor at any time and keep building there.
What you need
You need an MCP client that supports remote servers over Streamable HTTP - Claude (claude.ai, Desktop, Cowork), Claude Code, ChatGPT, Cursor, Grok Bot, or Codex.Connect your client
Claude, ChatGPT, Cursor, and Grok Bot install Macaly Cloud from their official directories. In Macaly, Settings → Connections has a card for Claude and for ChatGPT with the same steps and a link to the listing. Other clients add the server at:- Claude
- Claude Code
- ChatGPT
- Cursor
- Grok Bot
- Codex
- Open the Macaly Cloud listing in the Claude connectors directory. It works in claude.ai, the desktop app, and on mobile.
- Click Connect.
- Sign in to Macaly and approve access in the window that opens.
Using an API key instead
You can authenticate with a Macaly API key instead of OAuth - useful for headless agents and automation. Pass the key as a bearer token:teamId figure it out automatically.
Build an app end to end
1
Create the app
Your agent calls
create_app with a name. It gets back a chatId and the project briefing. The app is created empty - no starter prompt, no AI build.2
Write the code
Each
write_file and delete_file call is one atomic git commit with its own entry in the app’s history. The first write on a cold workspace takes ~20-30 seconds longer while the sandbox finishes booting.3
Add platform capabilities
For a database, payments, AI, media, or search, the agent reads the guide with
skill_info and runs its commands with bash - the sandbox already holds the credentials the guides need.4
Typecheck
After the last write, the agent runs
bash ".sandbox/check-errors" - it catches type, style, and server errors in one pass. On failure, get_logs returns the real output.5
Preview
The preview rebuilds automatically a few seconds after the last write. Once it succeeds,
preview_app returns the live URL to open or share.6
Publish
When you explicitly ask to go live, the agent calls
publish_app and polls get_deployment until the status is READY. connect_domain attaches a custom domain or renames the Macaly subdomain.Available tools
Macaly Cloud exposes 18 tools.Workspaces & apps
Code
Media
No tool accepts raw file bytes. For a file that exists only on your computer, add it to the app’s media library in Macaly first, then give your agent the public URL it gets there.
Capabilities & diagnostics
Publishing
Working alongside the Macaly editor
An app built through Macaly Cloud is an ordinary Macaly app. You can open it in the editor, look at the version history, roll back, or continue with Macaly’s own agent.- Every change is recorded. Each write carries a short explanation from your agent, which appears in the app’s chat history as a card naming the client that made it - so Macaly’s agent has the context if you continue there later.
- Only one agent at a time. While your external agent is working, the chat is locked: Macaly’s agent won’t start a turn, and the composer tells you who has the app. The lock clears itself a few minutes after the last write, or as soon as your agent shows you the preview.
- The preview waits for the finished app. Mid-build rebuilds are held back, so the preview panel keeps showing the app you already had until the run ends.
Example prompts
Troubleshooting
The sign-in window doesn't appear
The sign-in window doesn't appear
Make sure your client supports remote MCP servers with OAuth, and that you entered the full URL including the
/api/cloud/mcp path.A write returns CHAT_CLAIMED_BY_AGENT or CHAT_CLAIMED_BY_EDITOR
A write returns CHAT_CLAIMED_BY_AGENT or CHAT_CLAIMED_BY_EDITOR
Someone else has the app: Macaly’s own agent is mid-turn, or another external editor wrote to it recently. Wait and retry - the lock frees itself a few minutes after the last activity.
The preview URL shows nothing yet
The preview URL shows nothing yet
Previews serve from a completed build. Check
previewBuildStatus with get_project, and read get_logs with log_type: "build" if it failed.A tool returns FORBIDDEN
A tool returns FORBIDDEN
Either the workspace you’re acting on has Macaly Cloud disabled, or the action needs a plan feature you don’t have - publishing to a custom domain, for example.