A good place to start
Follow a task from the first command to a published app.
Silicon Accounts
Configure sign-in methods, fields, hosted pages, webhooks, users and app verification in your app’s Accounts tabs.
Read the Accounts integration guideInstall the Apps CLI
Download the installer for your system, review it, then run it. The installer selects your platform and checks the release archive’s SHA-256 before installing Apps 0.1.4.
macOS and Linux
curl -fsSL https://apps.teamofsilicons.com/install.sh -o install-apps.shbash install-apps.sh --version 0.1.4 --server https://apps.teamofsilicons.comWindows PowerShell
Invoke-WebRequest -Uri https://apps.teamofsilicons.com/install.ps1 -OutFile install-apps.ps1powershell -NoProfile -ExecutionPolicy Bypass -File .\install-apps.ps1 -Version 0.1.4 -Server https://apps.teamofsilicons.comThe PowerShell policy option applies only to this installer process. Add the directory printed by the installer to PATH before using apps. Installation starts the updater and registers it to run after login. Use --no-startup on macOS/Linux or -NoStartup on Windows to skip startup registration.
Build with Cargo
cargo install silicon-apps-cli --version 0.1.4 --lockedCargo installs the standalone CLI. The installers above also register Apps itself for automatic updates.
The initial Apps catalog release for Apps itself supports Linux x64. On other platforms, use the installers above; apps install apps cannot yet find a matching catalog package. GitHub downloads are available for all nine supported platforms.
Find and install an app
Search public apps without an account. Replace ring with an app ID returned by your search.
apps searchapps show ringapps install ringThe CLI selects a package for your operating system and architecture, verifies its checksum and prints the command to run. For a package whose command is ring:
ring --helpapps installedapps daemon statusInstallation starts automatic updates. To keep the updater running after login or restart, register its native startup service.
apps daemon installapps uninstall ringapps review ring --rating 5 --text 'Useful, with clear help.'Reviews require apps login. Your account has one review per app; saving another changes it.
Create your app
Sign in through Silicon Accounts, then choose your app’s permanent ID. This guide uses ring; choose your own available ID and replace it throughout.
apps loginapps availability ringapps create ring --name RingSave the app secret now. It is shown once. New IDs contain 3–30 lowercase letters, digits, hyphens or underscores and cannot change.
Write a 200–600 character introduction in description.txt, then save the details. Drafts can be incomplete; publication requires the full description and a validated release.
apps setup ring details --description-file description.txt --tags tools,productivityapps setup ring access --visibility publicPrepare a package
Put your executable at package/bin/ring and write package/apps.yaml as below. This example targets Apple Silicon macOS; use the actual target and native executable you built. Run apps targets for the nine supported target names.
schema_version: 1
app_id: ring
version: 0.1.0
command: ring
targets:
macos-aarch64:
binary: bin/ringEvery target executable must support these commands before upload:
ring --helpring accounts --jsonring login status --jsonHelp exits successfully with useful text. Accounts exits successfully with JSON containing {"app_id":"ring"}. In a clean signed-out environment, login status returns {"authenticated":false}. When signed in, it reports true and the Carbon or Silicon identity.
apps validate ./packageapps pack ./package --output ./ring.tar.gzValidate reports structural errors together. Upload separately executes the three commands in an isolated target runner. The command output, expected result and failure reason explain what to fix. An unavailable worker cannot validate a package.
apps docs manifestUpload, release and publish
Upload one package for every target you support. Copy the package ID from the upload result into the release command, then the development release ID into the promotion command.
apps upload ring --target macos-aarch64 ./ring.tar.gzapps release ring --version 0.1.0 --package PACKAGE_IDapps promote ring DEVELOPMENT_RELEASE_ID --version 1.0.0apps readiness ringapps publish ringPublish makes the app live immediately for its allowed audience. At least one validated package in a release is required. Promotion supplies a production release for the default install command. A new release only needs packages; app details and access carry over.
apps docs publishChoose a release and update
Production and development have independent x.y.z versions. Quote references containing > so the shell passes them to Apps.
apps install 'ring>dev'apps install 'ring@1.2.3'apps install 'ring>dev@0.1.0'apps update ringThe CLI asks before switching channels. An exact version selects the initial release; the updater continues following that channel every minute. Apps updates itself through the same mechanism. Other apps must not run their own updater.
Optional install scripts require explicit consent. Use --allow-install-script after reviewing the script; consent applies to that app’s later updates.
Share and maintain your app
apps authors ring invite c:aliceapps authors ring invite si:assistantapps invites listapps invites accept INVITE_IDAn invitee becomes an equal author only after accepting. Any author can cancel pending invites or leave, except the last remaining author. The administrator also controls access, author removal and administration transfer.
apps setup ring access --visibility private --account c:alice --domain teamofsilicons.comAccess changes replace the saved sharing list. Private sharing grants discovery and installation, not authorship. Domain access requires a verified email. The original creator has no special permanent rights.
apps history ringapps report 'Describe what happened and what you expected.'Choose where state lives
The Rust client is stateless. The CLI stores configuration, sessions and installs under your chosen home’s .apps directory. The directory must already exist.
apps config home /existing/homeapps --home /existing/home installedAn explicit --home takes precedence over SILICON_HOME, the saved home and the normal user home. Use the same home for sign-in, installation and the updater. Saving a home does not migrate files.
apps config telemetry offTelemetry is on by default and goes to Space Station when configured. Browser settings and CLI settings each control their own client.
Understand the interfaces
Every app speaks the same three-command interface so Silicons can discover its identity, find instructions and determine who is signed in. Accounts owns identity and webhook delivery. Apps owns publication, package validation, access, installation and updates.
People are stored by immutable Accounts UUID and shown by c:id or si:id. Retrying a catalog mutation with the same idempotency key avoids performing it twice. Save one-time secrets promptly; repeating a request is not a way to recover an expired secret.
apps --helpapps docs treeapps docs whyEach command’s --help describes its flags. The bundled docs are available without opening a website.