allo-cli
v1.0.2
Published
Official CLI for building and publishing Allo mini-apps
Readme
allo-cli
Official CLI for building and publishing Allo mini-apps.
Installation
npm install -g allo-cliFull Developer Journey
1. Register on dev portal → the Allo Developer Portal
2. Create app → Get App ID + App Secret
3. Install CLI → npm install -g allo-cli
4. Login → allo login
5. Scaffold project → allo create my-app
6. Link to your app → allo init --app-id YOUR_APP_ID
7. Develop locally → allo dev
8. Build bundle → allo build
9. Submit for review → allo submit
10. Admin approves → Admin panel → Mini-App Review
11. Live in marketplace → Users can find and launch your appSee examples/allo-demo-app/ for a complete working example.
Commands
allo login
Authenticate with your App ID and Secret from the developer portal.
allo login
allo login --app-id abc123 # skip prompt
allo login --force # re-authenticateCredentials are saved to ~/.allo/credentials.json (mode 600).
allo logout
Clear saved credentials.
allo logoutallo whoami
Show current authentication status.
allo whoamiallo init
Initialize allo.config.json in an existing project.
allo init
allo init --app-id abc123allo create [name]
Scaffold a new mini-app project.
allo create my-app
allo create my-app --template react
allo create my-app --template vanillaTemplates:
blank— Minimal HTML/JS starter (default)react— React + Vite with Allo SDK pre-configuredvanilla— Plain JavaScript with Allo SDK
allo dev
Start a local dev server with live reload and the Allo SDK simulator.
allo dev
allo dev --port 8080- Opens
http://localhost:3000automatically - Injects
window.AlloSDKsimulator — all wallet, user, navigation, storage, and haptics APIs are mocked - Live reload on file changes
- SDK call logs in browser console
allo build
Bundle the mini-app for submission.
allo build
allo build --out distProduces dist/<name>-<version>.zip ready for upload.
allo submit
Upload the bundle to the Allo Developer Portal for review.
allo submit --app-id abc123
allo submit --app-id abc123 --notes "Fixed payment flow"Options:
--app-id— App ID from the developer portal (or set inallo.config.json)--token— API token (or setALLO_API_TOKENenv var)--notes— Release notes for this version
allo.config.json
Every Allo mini-app has an allo.config.json at the project root:
{
"name": "my-app",
"version": "1.0.0",
"description": "My Allo mini-app",
"permissions": ["wallet.read", "user.profile"],
"entryPoint": "src/index.html",
"appId": "abc123"
}Allo SDK
The Allo SDK is injected by the runtime as window.AlloSDK. In dev mode, it's mocked by the simulator.
// Wallet
const balance = await AlloSDK.wallet.getBalance();
// → { amount: 125000, currency: 'ETB' } (amount in cents)
await AlloSDK.wallet.requestPayment({
amount: 5000, // 50.00 ETB
currency: 'ETB',
description: 'Order #123',
});
// User
const user = await AlloSDK.user.getProfile();
// → { userID, nickname, faceURL, phone }
// Navigation
AlloSDK.navigation.close();
AlloSDK.navigation.openURL('https://example.com');
// Storage (per-app, sandboxed)
await AlloSDK.storage.set('key', { value: 42 });
const data = await AlloSDK.storage.get('key');
// Share
await AlloSDK.share.text('Check out this app!');
// Haptics
AlloSDK.haptics.impact('medium');
AlloSDK.haptics.notification('success');Environment Variables
| Variable | Description |
|---|---|
| ALLO_API_TOKEN | API token for allo submit |
| ALLO_API_URL | Override API base URL (defaults to the Allo production API) |
License
MIT
