The wiele command runs on macOS and Linux. Every command prints help with --help, and the pages in this section list every command and flag the CLI has. The reference is generated from the CLI itself, so it matches the published version.
| Page | Commands |
|---|---|
| Sign-in and account | login, auth, onboarding, settings |
| Organizations and members | org |
| Billing | billing |
| Workspaces | workspace |
| Remote files | stat, ls, entries, get, read, write, history, revision |
| Checkouts | fetch, track, status, diff, push, pull, restore, checkout |
| Branches and copies | branch, copy |
| Conflicts | conflict |
| Access | access |
| Retention | workspace retention, org retention |
| Background sync | daemon, sync, live |
| Search | search |
| Machine and agent setup | version, doctor, skills, telemetry |
| Operations and recovery | operation, upload |
Global flags
These flags work on every command.
| Flag | Description |
|---|---|
--json |
Print one JSON object on standard output instead of text: {"schemaVersion":1,"ok":true,"data":...} or {"schemaVersion":1,"ok":false,"error":...}. |
--non-interactive |
Never prompt. Commands that need an answer fail with INTERACTION_REQUIRED. |
--api-url string |
API origin. Default: $WIELE_API_ORIGIN, or https://api.wiele.io. |
--credential-file string |
Absolute path of a session file to use instead of the OS keychain. Its folder must be owner-only (chmod 700). |
--timings |
Print API call durations and server timing to stderr. |
The CLI framework adds a few more:
| Flag | Description |
|---|---|
--help, -h |
Show help for the command. |
--version, -v |
Show the CLI version. |
--completions bash|zsh|fish|sh |
Print a shell completion script. |
--log-level LEVEL |
Minimum log level: all, trace, debug, info, warn, error, fatal or none. |
--wizard |
Build a command step by step with prompts. |
Names, paths and IDs
You can name most things by ID, slug or name:
- Organizations: ID (
org_...) or slug. Pick a default withwiele org use SLUG. - Workspaces: ID (
ws_...), slug or name. A few commands take only the ID; their flag descriptions say so. - Branches: name or ID (
br_...). Without--branch, commands use the checkout's branch, ormainoutside a checkout. - Revisions: the full 40-character SHA. Short SHAs and branch names don't work where a revision is expected.
A remote path is written as WORKSPACE:/path, such as my-work:/notes/plan.md. The workspace root is my-work:/. Inside a checkout you can leave out the workspace and organization, and commands take them from the checkout.
Paths can't contain \, control characters or more than 64 levels, and no path component may be .wiele, .wiele-meta, .git, .gitattributes or .lfsconfig.
Output
By default commands print text for people. Errors go to standard error:
error: The branch changed before this push could publish, so the server closed it. Local files are unchanged. (HEAD_MOVED)
next: Run wiele pull, then wiele push again
With --json, every command prints one JSON object on standard output:
{ "schemaVersion": 1, "ok": true, "data": {} }
{
"schemaVersion": 1,
"ok": false,
"error": {
"code": "HEAD_MOVED",
"message": "...",
"retryable": false,
"nextActions": ["Run wiele pull, then wiele push again"]
}
}
error may also carry operationId and details. Scripts and agents should pass --json --non-interactive, then check ok and the exit code. Every error code is listed in Troubleshooting.
Exit codes
| Code | Meaning |
|---|---|
0 |
Success. |
1 |
The command failed with an error code. Also returned by onboarding complete and org invitations accept when any invitation was not applied. |
2 |
The command line could not be parsed, such as an unknown flag. |
Retries and waiting
Most commands that change something on the server take --idempotency-key. Each run generates a fresh UUIDv7, except onboarding complete, which needs one passed in. push takes no key. Run it again and it resumes the saved push. If a command times out or the network drops, run it again with the same key: the server returns the first result instead of doing the work twice.
Commands that start server work wait up to 30 seconds by default; each flag table shows the exceptions. Change that with --wait, such as --wait 2m, or return at once with --no-wait where the command has it. A wait that runs out fails with OPERATION_PENDING; the work continues on the server and the same command picks it up.
Environment variables
| Variable | Effect |
|---|---|
WIELE_API_ORIGIN |
Default for --api-url. Must be HTTPS, except on localhost, 127.0.0.1 and [::1]. |
WIELE_CONFIG_HOME |
Config folder. Default: $XDG_CONFIG_HOME/wiele, else ~/.config/wiele. |
WIELE_STATE_DIRECTORY |
State folder for the checkout list and the background process. Default: ~/.local/state/wiele. |
WIELE_TELEMETRY |
0, false, off or no turns usage data off. |
DO_NOT_TRACK |
Any value other than empty, 0 or false turns usage data off. |
Local files
| What | Where |
|---|---|
| Session | OS keychain, service io.wiele.session, one entry per API origin. Linux uses the Secret Service. Or the file you pass with --credential-file. |
| Organization choice and telemetry setting | The config folder. It must be owner-only (chmod 700). |
| Checkout list and background state | The state folder. It must be owner-only. |
| Checkout state | .wiele inside each checkout. Never shared, never uploaded. |
| Background service | ~/Library/LaunchAgents/io.wiele.daemon.plist on macOS, ~/.config/systemd/user/wiele-daemon.service on Linux, or under $XDG_CONFIG_HOME/systemd/user/ when set, after wiele daemon install. |