Building apps

Two different tasks are called “building an app” in RobOS: starting an application project of your own, and adding an app to the RobOS desktop suite. This page tells you which tool does which and what to run next.

To take an app from a plan to merged pull requests with Task Planner, Task Implementer and Agent Code Review, follow the Build apps guides on rowbose.com: on your own or as a team.

Start a project of your own

The App Wizard (packages/app-wizard) is the entry point. It has two modes, selected by the Create New Project and Import Existing Code buttons in its header.

You have Use What it does
Nothing yet New app wizard Writes a starter project to packages/<slug>/ and registers it.
A codebase on disk, or a list of repositories Import an existing app Detects the archetype, writes missing catalog-info.yaml and dev-setup.sh files, and adds graph nodes.
A web app Front-end apps The Next.js template the wizard generates, and the graph shape for front-end apps.
A game Game development What the repository contains for games, and what the wizard does not do for them.

Open the wizard from the App Launcher, or run it from a RobOS checkout:

electron packages/app-wizard

Both modes look for a .robos directory in the process’s working directory and up to four parent directories, and write there. Start the wizard from inside the repository whose knowledge graph you want to update; if it finds no .robos, it uses the working directory. The app page is at App Wizard.

Work on the project with other RobOS apps

These apps read the same files and graph the wizard writes. Each has its own page; the one-line descriptions come from the apps’ package.json files.

App Use it for
Task Planner Creating tasks on your task server from an AI prompt.
Topology Studio Managing the system topology and the Backstage C4 catalog.
Git Projects Cloning, managing and launching git repositories.
PR Review Reviewing a pull request in RobOS, or opening it in IntelliJ IDEA (Review in IntelliJ) or VS Code (Review in VS Code).
REST API Client Running Bruno-compatible request collections.
Kube Studio Browsing Kubernetes clusters.
Deploy Tracker Tracking deployment history and frequency.

The full list is on Apps.

Add an app to the RobOS suite

Apps in the suite are Electron apps under packages/<app-id>/. Use the create-robos-app skill instead of copying an existing app by hand. Run it with the app name, for example “Dev Central”. It creates these files and then walks through registering the app:

File Purpose
package.json, main.js Electron main process.
preload.js Exposes the app’s methods to the renderer with contextBridge.
renderer/index.html, renderer/app.js, renderer/style.css The window.
icon.svg The app icon.
<app-id>.desktop The launcher entry. It needs X-RobOS-App=true for the App Launcher to list the app.

Then:

  1. Run the app with electron packages/<app-id>.
  2. Read its UI as text without a screenshot: node packages/robos-lib/snapshot-cli.js <app-id> --text. The app must call startDebugServer on the port registered for it in PORT_REGISTRY in packages/robos-lib/snapshot-cli.js. --json and --screenshot are also available.
  3. Run the suite’s tests in Docker with ./scripts/e2e-container.sh. This needs Docker; --build rebuilds the image and -i opens a shell in the container.
  4. Create the app’s docs page with node scripts/sync-app-docs.js. It adds a file to docs/_apps/ for every app that has none.
  5. To try the app on the RobOS VM, use the deploy-to-vm skill. The VM accepts SSH on port 2224.

See Skills for how skills are installed and run, and Architecture for how the pieces fit together.


Table of contents