Skip to main content

Synopsis

Description

pome init writes the manifest Pome reads on every run, pome.json. Run it once per agent project, before your first pome run. What else it writes depends on where you run it. In an empty directory it also scaffolds a starter library — tasks/, examples/agents/, and runs/ — so there is something to run in the next minute. In a directory that already has a package.json, it writes the manifest and nothing else: that is the bring-your-own-agent case. --bare and --starter override that decision in either direction. --example <id> skips scaffolding altogether and fetches a complete runnable example — agent, tasks, manifest and lockfile — into ./<id>. See Start from an example. pome init never overwrites an existing manifest. The one exception is --sdk, which updates agent.framework and command in the manifest already there. Hosted runs also need pome login and pome register agent <name>, which links the project to a cloud agent so its runs land on the dashboard together.

Options

What it writes

In a new project: The manifest it writes looks like this:
agent.slug starts as a slug derived from the directory name, so the manifest validates before you have an account. pome register agent replaces it with the slug the cloud assigns. The agt_ agent id is deliberately not written to the manifest — a committed opaque id lets a fork keep pushing runs at an agent its new owner cannot see. Pome caches it in .pome/link.json, local and uncommitted, and re-resolves it from the slug when it is missing.

Set up a project

Start from an example

Every bundled example is named by an id, never by a path inside pome-sh/digital-twins. --example fetches the one you name into ./<id>:
An id is a stable name, so upstream moves and renames do not break it — and an id that does not exist fails immediately:
The list ships inside the CLI — pome init --help prints the same set, offline — so it cannot name an example that no longer exists. The files come over the network, from the commit that built the CLI you are running, so an older CLI scaffolds the example as it stood then. The ids the rest of these docs walk through:

pome register agent

Create a cloud agent under your team and write its slug to the manifest.
Plus the global flags--api-url, --artifacts-dir, and -V, --version.

Examples

Scaffold a project. In an empty directory this writes the starter library too; in a repo that already has a package.json it writes only the manifest:
Force the starter library into an existing repo anyway, to read the samples:
Write only the manifest in an empty directory, when you already have an agent elsewhere:
Scaffold against the Claude Agent SDK, which writes the example agent and pre-fills agent.framework:
Fetch a complete bundled example instead of a starter project, into ./support-triage:

Exit status

See also