YouBothAgent▾
You — Business rules and flows you own. Read these yourself.
Both — Know the idea; your agent follows the details.
Agent — Conventions and references your agent follows. Look up as needed.
CLI Reference▾
AkanJS Reference▾
Cloud CLI
Five optional commands for signing in to Akan Cloud, updating the framework and moving env values. Internal deployment commands are left out of this page on purpose.
Words Used on This Page
TermDescription
Akan Cloud
The service at
https://cloud.akanjs.com that holds your account, env values and tunnels.env values
Each app's and library's
env/env.client.<env>.ts and env/env.server.<env>.ts, kept out of git.AKAN_WORKSPACE_ID
The cloud workspace id in the root
.env, which decides where env values are kept.SCP server
A server of your own, reached over SSH, that keeps env values when there is no cloud workspace.
Where Each Command Connects
Command
Akan Cloud
SCP
npm
This machine only
Account
login
✓
Signs in through the browser and saves the session.
logout
✓
Deletes the saved session without contacting the cloud.
Framework
update
✓
Installs from npm, or from a local registry with
--registry local.Env values
download-env
✓
✓
Pulls env values from Akan Cloud or an SCP server, whichever the workspace uses.
upload-env
✓
✓
Pushes the local env values to that same place for the next
download-env.✓ConnectsDoes not connect
- Run them from the workspace root. Like most
akancommands, they need the folder that holdspackage.json,tsconfig.jsonand.env. --hostpoints at another cloud. Every command that talks to Akan Cloud takes it, so a self-hosted cloud works with the same commands.- One sign-in per host, per machine. The session lives in
~/.akan/config.json, so every workspace on this machine shares it.
Where Env Values Are Kept
download-env and upload-env read the root .env to pick the store. Both use the same one, so what one uploads the other downloads.| Store | Used when |
|---|---|
| ↳ Where the archive lives | |
| Akan Cloud | AKAN_WORKSPACE_ID is set |
| The cloud workspace with that id, after signing in if needed. | |
| SCP server | AKAN_WORKSPACE_ID is empty |
~/secrets/<repo>/env.tar on a server you pick from a list. | |


Both directions overwrite.
upload-env replaces the stored archive whole, and download-env writes over local files at the same paths. Download before you edit, and upload right after.Related Pages
login
Sign in to Akan Cloud from this machine.
The CLI opens a sign-in page in the browser and waits until you finish there.
Signature
Options
--hostStringdefault https://cloud.akanjs.com
Akan Cloud to use;
http://localhost:8283 in the framework repo (USE_AKANJS_PKGS=true).Notes
NameDescription
browser
Prints the sign-in URL and a QR code and opens it; visit the URL yourself if no browser opens.
time limit
Gives up after 10 minutes without a sign-in, so run it again.
already signed in
Prints the account's nickname and exits without opening the browser.
expiring session
Renewed first, near or past its expiry; only a failed renewal opens the browser.
saved to
~/.akan/config.json, one session per host, readable only by you.used by
akan tunnel and akan start --share need it, while the env commands sign in on their own.Examples
logout
Sign out of Akan Cloud on this machine.
Use it to switch accounts, or to take this machine's cloud access away.
Signature
Options
--hostStringdefault https://cloud.akanjs.com
Akan Cloud to use;
http://localhost:8283 in the framework repo (USE_AKANJS_PKGS=true).Notes
NameDescription
clears
Only the session saved for that
--host, leaving other hosts signed in.not signed in
Prints that no session was found and changes nothing.
Examples
update
Move the global
akan CLI and this workspace's Akan.js packages to the newest version of a release tag.
Use latest for normal updates, and beta, rc or canary only when you mean to test that channel.Signature
Options
--tagStringdefault latestlatest | dev | canary | beta | rc | alpha
Release channel to install from.
--registryStringdefault npmnpm | local
local is AKAN_NPM_REGISTRY, or http://127.0.0.1:4873 when it is unset.Notes
NameDescription
package.json
In a workspace, pins root
akanjs and @akanjs/devkit to that version and runs bun install.global install
Installs
@akanjs/cli@<tag> globally with bun add -g, and prints akan --version at the end.--registry local
Tries a framework build from a local registry before it is published to npm.
framework repo
With
USE_AKANJS_PKGS=true, --registry has no default, so the CLI asks.Examples
download-env
Download the env values of every app and library in this workspace.
Run it after cloning and whenever someone uploads a change, because env values are never committed.
Signature
Options
--hostStringdefault https://cloud.akanjs.com
Akan Cloud to use when
AKAN_WORKSPACE_ID is set; ignored for an SCP server.Notes
NameDescription
where
Akan Cloud when the root
.env sets AKAN_WORKSPACE_ID, otherwise an SCP server.files
Unpacked at the workspace root, over the same paths
upload-env packed.first SCP run
Asks for a server name and host, plus an optional username and SSH port.
server list
Kept in
~/.akan/config.json, so later runs let you pick, add or remove a server.Examples
upload-env
Upload the env values of every app and library to where
download-env reads from.
The stored archive is replaced whole, so download first instead of uploading a stale local copy.Signature
Options
--hostStringdefault https://cloud.akanjs.com
Akan Cloud to use when
AKAN_WORKSPACE_ID is set; ignored for an SCP server.Notes
NameDescription
where
Akan Cloud when the root
.env sets AKAN_WORKSPACE_ID, otherwise an SCP server.env files
env/env.client.<env>.ts and env/env.server.<env>.ts, without the type and example files.secrets
Also every file matched by an app's
secrets globs in akan.config.ts..gitignore
Each upload writes those
secrets patterns into a managed block of .gitignore.no files
Stops with an error when there is no env file to upload.
Examples