Theme
Last updated: 2026-10-20
An app has a package ID and a listing: name, tagline, description and icon. Each uploaded version is a build.
create and update read package_id from the current directory's app.json, or accept --package-id <id>. ls takes the package ID as a positional argument.
evenhub create
Creates an app and its first build in one operation. Pack your project before running it.
bash
evenhub create my-app.ehpk \
--name "My App" \
--tagline "One line about it" \
--icon icon.png| Option | Description |
|---|---|
--name <text> | Required display name |
--tagline <text> | Required short description |
--description <text> | Store description |
--description-file <path> | Read the description from a file |
--icon <file.png> | 24×24 PNG; see Icon rules |
--package-id <id> | Override the package ID read from app.json |
--new-draft | Upload again instead of reusing a cached draft |
Use either --description or --description-file; supplying both exits 1. Use the file option for multiline copy. Without --icon, the CLI creates the app with a placeholder and reports it in the output. Replace the placeholder before submitting for review:
bash
evenhub update --icon icon.pngAn existing package ID exits 4 before a package is sent. For a later version of the same app, use upload.
evenhub update
Updates the listing fields supplied in the command.
bash
evenhub update --name "New name" --tagline "New tagline"
evenhub update --description-file ./store.md
evenhub update --icon icon.pngAccepts --name, --tagline, --description, --description-file, --icon and --package-id.
If the app has an approved or published version, or a pending review, the server rejects a direct edit with code 1022 and the CLI exits 7. Submit those listing changes through the portal's review flow.
evenhub ls
List all apps on the account, or the builds belonging to one package:
bash
evenhub ls
evenhub ls --channels
evenhub ls com.example.myapp
evenhub ls com.example.myapp --verbose| Option | Description |
|---|---|
--channels | Include beta and public pointers in the app list |
--verbose | Fetch app details and review status for a package |
--json | Return one JSON object; see Scripting |
The app list is paginated internally. --channels adds one request per app, so enable it when you need channel information.
Builds are ordered by semantic version: 1.0.10 precedes 1.0.9. Only --verbose fetches review details and adds the top-level app and review JSON fields. A failure fetching those details is reported as an error.
Field limits
Values are validated locally before submission.
| Field | Limit |
|---|---|
| Name | 1–20 characters |
| Tagline | 1–50 characters |
| Description | 1–2000 characters |
| Build changelog | Up to 500 characters |
Lengths count Unicode code points. The CLI normalises line endings and trims leading and trailing whitespace before counting.
Icon rules
Supply a PNG that meets all four requirements:
| Property | Requirement |
|---|---|
| File | PNG, at most 1 MB |
| Dimensions | Exactly 24×24 pixels |
| Colour | Each pixel is fully transparent or opaque #F4F4F4 |
| Structure | Visible pixels form complete 2×2 blocks |
For the block check, the CLI scans pixels in raster order. Each unconsumed visible pixel must have visible neighbours to its right, below and below-right. A block cannot start on the final row or column.
Colour is checked across the image before block structure. A colour error includes the pixel coordinates and colour; an incomplete block reports its coordinates. Local validation failure exits 9 and sends nothing.
Use the portal's icon canvas to draw the asset, or follow the UI/UX Design Guidelines.
Deleting an app
bash
evenhub rm --app com.example.myappThis permanently removes the app, its builds and memberships. The CLI asks for confirmation; --yes skips it for scripts. See Builds for deletion rules.