Start with the human-facing project home. Add a local wrapper and attach canonical repositories only when you need them.
Orbit keeps documents, source code, and local project material in the places where they belong:
iCloud project optional wrapper canonical Git repo
notes, assets, exports ←→ local control plane ←→ canonical source
The wrapper is optional. Orbit creates local links between these surfaces; it does not move or copy source code into the iCloud project.
With Homebrew:
brew install SuuSoJeat/tap/orbitWithout Homebrew:
curl -fsSL https://github.com/SuuSoJeat/orbit/releases/latest/download/orbit-install.sh | sh
export PATH="$HOME/.local/bin:$PATH"The portable installer uses ~/.local. The repository and its releases must
be public for this command to work for everyone; until then, it is available
to repository collaborators only.
Create an iCloud project:
orbit new "Acme Product" --category companiesAdd a local wrapper during creation:
orbit new "Acme Product" \
--category companies \
--with-wrapperFor a company/client project, Orbit can guide you through numbered pickers. The same flow can be scripted:
orbit new "Example Project Platform" \
--company "Example Company" \
--client "Example Client" \
--with-wrapperConfigure consumer-specific locations before using category-based creation:
orbit config init
orbit config checkWith no configuration file, Orbit uses these defaults:
~/Repositories
~/Library/Mobile Documents/com~apple~CloudDocs/Workspace/Companies
~/Library/Mobile Documents/com~apple~CloudDocs/Workspace/Ventures
The configuration is stored at ~/.config/orbit/config, or at the path
specified by ORBIT_CONFIG or the global --config PATH option. It is
consumer-specific and should not be committed. Use orbit config show to
inspect the resolved paths. To add an explicit namespace below the iCloud
Drive root, use orbit config init --icloud-profile NAME.
Attach an existing canonical repository:
orbit attach \
"$HOME/Repositories/acme-product-orbit" \
"$HOME/Repositories/Acme/product"Attach multiple repositories to the same wrapper:
orbit attach \
"$HOME/Repositories/Acme/product" \
"$HOME/Repositories/Acme/product-docs"Repository names default to the folder name. Override one explicitly when needed:
orbit attach --name docs "$HOME/Repositories/Acme/product-docs"Orbit records attachments as named sections and creates one symlink per
repository below local/repo/.
Check the boundaries and see the configured destinations:
orbit doctor "$HOME/Repositories/acme-product-orbit"
orbit open "$HOME/Repositories/acme-product-orbit" --dry-runFrom inside a wrapper, Orbit discovers its path automatically:
cd "$HOME/Repositories/acme-product-orbit"
orbit doctor
orbit open --dry-run
orbit attach "$HOME/Repositories/Acme/product"| Command | What it does |
|---|---|
| orbit config init/show/check | Create or inspect consumer-specific locations |
orbit new [PROJECT_NAME] |
Create an iCloud project and optionally a local wrapper |
orbit attach REPOSITORY_PATH... |
Attach one or more canonical local Git repositories to the current wrapper |
orbit doctor |
Validate the wrapper, iCloud project, and repository boundaries |
orbit open --dry-run |
Print the project locations without opening applications |
orbit open --launch |
Open the iCloud project, wrapper, and configured editor on macOS |
orbit undo |
Review and remove a previously recorded project creation |
orbit new [PROJECT_NAME] [--category companies|ventures]
[--company NAME] [--client NAME|--no-client]
[--icloud-root PATH] [--with-wrapper] [--wrapper-root PATH]
Use --category ventures for a project directly under the ventures iCloud
root. Company projects can use --company NAME and --client NAME, or
--no-client for a company-level project. Omit NAME or the company/client
values to use the interactive pickers.
--wrapper-root PATH also enables the local wrapper and lets you choose its
location. Otherwise, Orbit uses the configured wrapper_root, which defaults
to repository_root:
~/Repositories/<project-slug>-orbit
--icloud-root PATH creates a one-off project and bypasses the category roots
in the consumer configuration.
- Keep notes, references, assets, exports, and other sync-worthy documents in the iCloud project.
- Keep the canonical Git repository outside iCloud, normally under
the configured
repository_root. - Keep secrets, credentials,
.gitdirectories, dependencies, and build output out of the iCloud project. - Use
orbit doctorbefore relying on a wrapper or attached repository.
orbit undo records creations under ~/.local/state/orbit/creations/ and
only removes paths recorded for the creation you select.
Development, testing, CI, release, packaging, and wrapper-template guidance lives in CONTRIBUTING.md.