pip install palmengine[cli]
Rich interactive wizards, durable workflows, and transactional reliability โ built on clean Behavior Trees.
Palm gives you the power to build complex workflows that still feel human โ with interactive wizards, durable state, and production-grade reliability.
Collection steps, schemas, backtracking, summary & transactional commits. Resume anytime.
Run wizard branches concurrently with isolated scopes and smart merging.
Process instances survive restarts. Outbox, compensation, and live projections keep everything consistent.
22 built-in rules for data shaping, serialization, and enrichment โ usable everywhere.
From the living Explorer hub to the rich REPL and live dashboard โ see how Palm feels when you run it.
Run palm host server and open http://localhost:8080/ to explore live.
Architecture, development guides, and the living API reference.
Install, quick start, CLI commands, and feature overview.
Layers, engines, CQRS, server surfaces, and extension model.
Contributing, testing, type checking, and project conventions.
PatternApp manifests, bindings/flow layout, and palm.common boundaries.
ProviderApp manifests, bindings/flow layout, and the palm compositional provider.
Instance workspace at /explorer/instances/{id},
collection UI, and /v1/api/flows session REST.
See EXPLORER-WIZARD.md.
Palm ships a registry-driven HTTP surface on ServerRuntime.
Start a server, open Palm Explorer, browse the REST reference, or fetch OpenAPI.
GET /explorer โ living hub (root redirects here)
ยท
GET /v1/docs โ interactive reference
ยท
GET /v1/openapi.json โ OpenAPI 3.0
$ palm host server
Default port is 8080. Open
http://localhost:8080/ โ redirects to Palm Explorer.
Health at /health links to Explorer, docs, and OpenAPI.
List endpoints return a resource array plus a pagination block.
When auth_enforce is on, send
X-Palm-Subject on write operations.
Copy these curls against a running server (localhost:8080).
Pipe through jq for pretty output.
Runtime status and documentation links
curl -s http://localhost:8080/health
Rich job view โ wizard step, snapshots, next actions
curl -s 'http://localhost:8080/v1/jobs/job-abc123/context' \
-H 'Accept: application/json'
Paginated orchestration job board
curl -s 'http://localhost:8080/v1/jobs?limit=10&offset=0' \
-H 'Accept: application/json'
Submit a named flow from the repository
curl -s -X POST 'http://localhost:8080/v1/jobs' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"flow_name":"onboard"}'
Durable process instance index
curl -s 'http://localhost:8080/v1/instances?limit=10&offset=0&include_terminal=true' \
-H 'Accept: application/json'
State snapshots for audit and replay
curl -s 'http://localhost:8080/v1/instances/inst-abc123/snapshots?limit=10&offset=0' \
-H 'Accept: application/json'
Registered flow catalog
curl -s 'http://localhost:8080/v1/flows?pattern=wizard' \
-H 'Accept: application/json'
Full flow definition
curl -s 'http://localhost:8080/v1/flows/onboard' \
-H 'Accept: application/json'
Full reference with every endpoint, schema highlights, and sample responses:
GET /v1/docs on your running server.
$ pip install palmengine[cli]
$ palm # REPL cli
$ palm doctor
$ palm status
$ palm flow start onboard # rich wizard example
$ palm host server # http://localhost:8080/explorer
Or with uv (recommended): uvx palmengine palm doctor