# Rome OS Docs > Rome OS (RomeOS) is a private AI agent environment for building apps with typed actions, app-private agents, skills, routines, hooks, databases, HTTP APIs, and web UIs. ## Start here - [App Store Submission](https://romeos.cc/docs/building-apps/app-store-submission.md): Package, authenticate, and publish a Rome App to the Rome App Store. - [App Structure & app.yaml](https://romeos.cc/docs/building-apps/app-structure.md): How a Rome App source tree is laid out, and what the app.yaml manifest declares. - [Build, Install & Iterate](https://romeos.cc/docs/building-apps/build-install-lifecycle.md): Move an app from source to running: build, pack, install, and update. - [Design Guidelines](https://romeos.cc/docs/building-apps/design-guidelines.md): Product and frontend rules every Rome App should follow. - [Building Rome Apps](https://romeos.cc/docs/building-apps.md): A short guide to choosing, structuring, and shipping Rome Apps. - [Public Access & Caller Identity](https://romeos.cc/docs/building-apps/public-access.md): Open your app to anonymous visitors, know who is calling your API, and keep owner-only routes private. - [Building a Rome App](https://romeos.cc/docs/building-apps/quickstart.md): From an idea to a git-versioned Rome App the daemon is running — scaffold, install, iterate. - [Connect Discord](https://romeos.cc/docs/rome/discord.md): Talk with Rome in Discord - [FAQ](https://romeos.cc/docs/rome/faq.md): - [What is Rome?](https://romeos.cc/docs/rome.md): - [Connect Lark](https://romeos.cc/docs/rome/lark.md): Talk with Rome in Lark - [Connect Telegram](https://romeos.cc/docs/rome/telegram.md): Talk with Rome in Telegram - [Connect WeChat](https://romeos.cc/docs/rome/wechat.md): Talk with Rome in WeChat - [Connect WhatsApp](https://romeos.cc/docs/rome/whatsapp.md): Talk with Rome in WhatsApp - [Actions](https://romeos.cc/docs/building-apps/capabilities/actions.md): Define typed operations you can call — the main thing code and agents run. - [Agents](https://romeos.cc/docs/building-apps/capabilities/agents.md): Define LLM agents that belong to your app and call them from your own code. - [Browser Automation](https://romeos.cc/docs/building-apps/capabilities/browser-automation.md): Drive the guardian's agent browser over CDP from app backend code. - [Database & Migrations](https://romeos.cc/docs/building-apps/capabilities/database.md): Save app data in SQL tables with Drizzle ORM, kept apart by table prefix. - [Events](https://romeos.cc/docs/building-apps/capabilities/events.md): Run actions in response to domain events published on the event bus. - [Favor Request Actions](https://romeos.cc/docs/building-apps/capabilities/favor-request-actions.md): Charge favors before Rome dispatches one of your app's actions. - [Hooks](https://romeos.cc/docs/building-apps/capabilities/hooks.md): Register callbacks on the daemon's runtime to extend its message and turn loops. - [HTTP API](https://romeos.cc/docs/building-apps/capabilities/http-api.md): Serve HTTP endpoints under your app's own API path. - [Capabilities](https://romeos.cc/docs/building-apps/capabilities.md): Choose the Rome App artifacts your app needs, and delete the ones it does not. - [Routines](https://romeos.cc/docs/building-apps/capabilities/routines.md): Run actions automatically on a schedule. - [Skills](https://romeos.cc/docs/building-apps/capabilities/skills.md): Ship plain-language skills an agent loads when it needs them. - [Telemetry & Tracing](https://romeos.cc/docs/building-apps/capabilities/telemetry.md): Stamp spans on your app's work so it shows up in the instance's traces, without importing OpenTelemetry. - [Web UI](https://romeos.cc/docs/building-apps/capabilities/web-ui.md): Ship a React UI the host shows for your app, styled with host design tokens. - [WebSockets](https://romeos.cc/docs/building-apps/capabilities/websockets.md): Upgrade app API requests to live WebSocket connections. ## For coding agents 1. Start with `getting-started.md`. 2. Use `app-structure.md` before editing `app.yaml`. 3. Use `actions.md` for `action.yaml`, `defineAction`, `ActionResult`, and approval behavior. 4. Use `agents.md` only when the task needs open-ended LLM reasoning. 5. Use `skills.md` when writing agent-readable workflows. ## Posts - [Rome vs OpenClaw: which personal AI assistant fits you?](https://romeos.cc/compare/rome-vs-openclaw.md): Rome and OpenClaw both put a personal AI agent in your chat apps. How they compare on setup, trust, apps, and control — and where Hermes Agent fits.