Docs / Reference / app.toml
app.toml
The manifest is only for the identity and permissions of an app. Capabilities are declared in code.
Each app folder has an app.toml. When a person installs the app, the person sees the permissions that the manifest asks for.
Example
[app]
name = "agenda"
title = "Agenda"
version = "0.1.0"
description = "Gets today's and tomorrow's events from your calendar and reminds you before meetings"
command = "bin/agenda.cwasm"
network = true
memory_mb = 64
events = ["tick"]
pushes_per_hour = 6
Identity
| Field | What it is |
|---|---|
name |
The app name, used in the log and on cards. All capabilities are named <name>.<action>. It cannot be qing |
title |
The name that people see |
version |
The version number |
description |
A one-line description |
command |
The compiled wasm module, relative to this folder |
Permissions
A permission that you do not write is off.
| Field | Default | What it is |
|---|---|---|
network |
false |
Use the network. An app with false gets only errors from network calls |
location |
false |
Know where the device is |
mic |
false |
Record speech. Recording can start only after the person presses a button of the app |
call |
false |
Make phone calls. A call can start only after the person presses a button of the app |
mcu |
false |
Send and receive frames with the MCU. Only one app on a device gets it |
lan |
false |
Broadcast to the app with the same name on other devices on the local network |
listen |
0 |
A port above 1024 where the app waits for connections on the local network. 0 means no |
mdns |
"" |
An mDNS service that the system announces for the app. Needs listen |
memory_mb |
— | The memory limit of the wasm module |
Events and rhythm
| Field | What it is |
|---|---|
events |
The system events that the app receives: tick (each minute), near (a person comes or goes), notice (a device reports something), mute (the mute switch). With no list, the app receives none |
pushes_per_hour |
The limit for cards that the app pushes. Above the limit, the system shows the card but does not read it aloud |
rate_hz |
The system calls the app at this fixed rate, up to 200. 0 means no |
Full-screen apps
Apps that use the full screen, such as games, use these fields:
| Field | What it is |
|---|---|
screen |
"full" makes a full-screen page. Use it with rate_hz = 60 |
frame |
The frame format. Not set: 240×160 with 256 colors. "640x480": true color, not scaled by the system |
cover |
The cover on the home screen, a PNG in the app folder |
The fastest way to write a full-screen game is the VibePlay SDK.