This document explains how Rise integrates with Flow and why installing Rise gives you a high-leverage workflow layer across repos.
Rise itself is treated as closed/internal product code in many environments, but its operator model and command surface can still be documented and shared.
Integration starts with one command:
f install riseAfter install:
which rise
rise --helpYou now have rise on your PATH and can use Rise workflows from any repo.
From Flow's install behavior (f install):
- backend resolution is automatic (
registry->parm->flox) riseis a built-in known install target- Rise can be part of bootstrap tool install flows
Rise is not just one command; it is a workflow layer that adds:
- Repo adoption overlays for external/team repositories.
- Task detection and
flow.tomlgeneration/merge. - JJ-native branch/bookmark workflow for clean PRs.
- Multi-platform compile/dev loops (web, Expo/mobile, Electron, COI).
- Mobile/TestFlight build observability and debugging.
- Schema workflows with generated TypeScript/Effect bindings.
- Sandbox verification in VM environments.
- AI and trace workflows that integrate with Flow and surrounding tooling.
The defining Rise behavior is rise adopt.
For external repos, Rise creates a JJ overlay bookmark (rise) above main:
riselayer contains your local workflow files (for exampleflow.toml).- Team-facing
mainremains untouched. - PR branches are created from
main, so Rise files do not leak into PRs.
Typical flow:
rise adopt https://github.com/org/repo
cd ~/code/org/repo
rise sync
jj new main -m "feat: clean PR change"This is the main reason Rise is valuable in mixed team environments: private operator ergonomics without contaminating shared repo history.
During adoption, Rise detects project tasks from common sources (for example package.json, Makefile, Cargo.toml, go.mod, pyproject.toml, justfile) and generates flow.toml.
You keep the generated baseline and extend it with your own project-specific tasks.
Useful commands:
rise adopt .
rise adopt --force .
rise flow tasks .
rise sync
rise listKey integration point: this makes Flow task execution (f <task>) available even in repos that did not originally ship with Flow conventions.
Rise provides higher-level wrappers while preserving underlying toolchains.
Common commands:
rise dev
rise app
rise run dev --runner turbo
rise setup
rise verifyFrom Rise docs/repo behavior:
rise devstarts local dev paths with platform-aware behavior.rise appis a fast app shortcut path.rise runcan delegate to task runners (Turbo/Flow patterns).rise setupis project setup entrypoint.rise verifyis local verification flow.
Rise has dedicated mobile commands with structured observability:
rise mobile validate
rise mobile preflight
rise mobile testflight
rise mobile builds
rise mobile logsWhy this matters:
validatecatches JS bundle issues quickly.preflightchecks config + bundle + prebuild inspect.testflightcaptures structured build events.builds/logsprovide post-failure visibility and faster debugging loops.
This reduces the "wait 10+ minutes to discover obvious build issues" pattern in Expo/EAS flows.
Rise includes schema lifecycle commands:
rise schema init
rise schema status
rise schema diff
rise schema generate
rise schema push
rise schema validateThis supports a source-of-truth schema flow with generated app bindings (including TypeScript/Effect-oriented outputs in documented workflows).
Rise supports VM-backed sandbox execution and verification:
rise sandbox
rise sandbox verify
rise verify --sandbox
rise sandbox kill
rise sandbox cleanUse this when you need stronger isolation for verification or reproduction loops.
Rise docs also describe:
- AI trace collection (
rise logs) - build failure context for AI-assisted remediation (Flow-native failure bundles)
- integration patterns around generated prompts and operational context
For Flow users, this complements:
f commitreview/message provider strategies that can call Rise-backed providers- Flow-native task failure tooling such as
f failure copy --format codex
For a new machine:
f doctor
f auth login
f install rise
rise --helpFor an external/team repo:
cd ~/code/org/repo
rise adopt .
rise syncFor daily work:
rise verify
rise mobile preflight # if mobile repo
jj new main -m "feat: ..."Use Rise when you want:
- an opinionated operator layer over heterogeneous repos
- clean PRs with private local tooling overlays
- stronger mobile/testflight diagnostics
- schema/sandbox/dev orchestration from one CLI surface
Use plain Flow-only setup when:
- repo already has stable native workflows and minimal onboarding cost
- you do not need overlay-based separation
- your team explicitly avoids JJ overlay workflows
Flow and Rise are complementary:
- Flow is the general control plane (
f tasks,f env,f commit, deploy/sync/invariants). - Rise is the repo/workflow acceleration layer for adoption, platform compile loops, mobile observability, and overlay workflows.
The practical entrypoint is still:
f install riseThen use rise where it adds leverage, while keeping Flow as your consistent command contract across projects.
If you have access to the internal Rise repo docs, these are particularly relevant:
docs/adopt-guide.mddocs/workflow-guide.mddocs/rise-branch-workflow.mddocs/build-observability.mddocs/schema-guide.mddocs/sandbox-vibe.mddocs/rise-mobile-compat.mddocs/expo-identifiers.md