Skip to content

Adopt an existing app

Ledger · source keeperI remember the exact starting point so the next change belongs to the same app. Connect a real Xcode project to Menlo without rewriting its repository.

Ask with AI

No model call or tracking. This makes a clean prompt for the AI you already trust.

Adoption connects an existing project to the private intent factory. To share public GitHub source instead, use menloapp deploy.

Select Adopt Existing App, then choose an exact .xcodeproj or .xcworkspace. Menlo lists schemes and probes application build settings with xcodebuild. If it cannot choose one app scheme without ambiguity, it asks you.

The private adopted-project record includes:

  • display and product name;
  • bundle identifier;
  • container, source root, and scheme;
  • iOS deployment target and non-secret signing-team setting;
  • Git revision and paths already dirty at adoption;
  • bounded repository instructions such as AGENTS.md, CLAUDE.md, MASTER_PROMPT.md, README, and existing Menlo metadata;
  • a real unsigned Simulator build result;
  • whether the exact bundle is already installed when the intended phone can be resolved.

The stable identity is a random project_<uuid>. It is not a protocol digest and is not derived only from a path. Choosing the same canonical container, scheme, and bundle identifier again preserves that identity.

It does not move files, add .tohseno, initialize Git, commit, push, publish, change project settings, or clean the working tree. The private record lives outside the repository under the service’s living-projects-v1 store.

If the source folder later moves, the record keeps its former path and reports source unavailable. Automatic relinking is not implemented. Deleting and recreating the record would fabricate continuity, so the product does not present that as a repair.

Wait for the Simulator probe to finish. A passed probe means Xcode could compile the selected scheme for a simulator without code signing. It does not prove physical signing or installation. Open the project workspace and confirm the source path, scheme, bundle identifier, and existing dirty paths look right before sending an evolution.

Next: evolve the connected app.