Skip to content

Introducing Appwrite Terminal_

Appwrite Terminal runs the Appwrite CLI directly inside the Console. Your session and project context are preconfigured, with keyboard-first controls and multi-tab workflows, so you can inspect resources without leaving the project.

7 min read

Every time you need to list users, inspect a deployment, or pull JSON from the Appwrite API, the workflow usually looks the same: leave the Console, open a local terminal, make sure the CLI is installed, confirm you are logged in, and point appwrite.config.json at the right project.

That context switching adds friction, especially when you are already deep in a project and just want a quick answer from the API.

Today we are introducing Appwrite Terminal: the Appwrite CLI, built into the Console. It runs in your browser, preconfigured with your Console session and the project you are viewing, so you can run commands where you already are.

Less context switching, more shipping

Appwrite Terminal lives in the project footer on every project route. Open it once and keep working: the panel stays mounted while minimized, your command history persists per project, and the CLI install is cached in IndexedDB so later commands start faster.

The goal is simple: reduce the distance between seeing something in the Console and acting on it with the CLI.

Instead of copying a resource ID into a local shell, you can run:

Bash
appwrite users list --json
appwrite functions list
appwrite tables-db list

Right from the project you are already inspecting.

Zero setup auth and project linking

When Appwrite Terminal bootstraps, it:

  1. Resolves your Console session and writes CLI prefs (~/.appwrite/prefs.json) so appwrite whoami works immediately.
  2. Links the active project by generating appwrite.config.json under /project with the correct endpoint, project ID, and organization ID.
  3. Installs Appwrite CLI 22.1.2 into an in-browser Node.js runtime (powered by almostnode) and restores the install from IndexedDB when possible.

If your session cookie is httpOnly-only, a fetch bridge forwards browser credentials for Appwrite API requests transparently. You stay signed in without copying secrets into the shell.

On first open you will see a welcome message with suggested commands and clickable suggestions you can run with one click.

Full Appwrite CLI coverage (where it makes sense)

Appwrite Terminal supports the same API-oriented commands you would run locally. Tab completion covers:

  • Appwrite topics: account, databases, functions, messaging, projects, proxy, sites, storage, tables-db, teams, tokens, users, vcs, webhooks, and more.
  • Subcommands per topic (for example users list, functions list-deployments, tables-db list-rows).
  • Shell builtins such as cd, ls, cat, grep, and echo.
  • Paths inside the virtual filesystem when a command expects a file argument.

Commands that require interactive prompts or a local machine are blocked with clear guidance:

CommandWhy it is blockedWhat to do instead
login / logoutYou are already signed in through the ConsoleSign out from the account menu if needed
initThe project is already linkedRun appwrite init locally to scaffold resources
pull / pushInteractive prompts are requiredRun appwrite pull all or appwrite push all on your machine
runRequires Docker and local emulationRun appwrite run functions locally
deployRemoved from the CLIUse appwrite push locally

Everything else, including JSON output flags, list/get/create/update/delete operations, and help topics, works as expected.

Keyboard-first by design

Appwrite Terminal is optimized for keyboard access alongside the rest of the Console's keyboard shortcuts.

Console-level shortcuts

These work anywhere on a project route:

Shortcut (macOS)Shortcut (Windows / Linux)Action
+ ;Ctrl + ;Toggle Appwrite Terminal
+ EnterCtrl + EnterEnter or exit full screen
+ FCtrl + FSearch terminal output
+ Shift + ;Ctrl + Shift + ;New terminal session

You can also press + K (or Ctrl + K) to open the Command Center and choose Open terminal.

Input line shortcuts

While typing a command, standard readline-style bindings apply:

ShortcutAction
Home / Ctrl + AMove to start of line
End / Ctrl + EMove to end of line
Alt + / Alt + Move by word
/ Previous / next command in history
Ctrl + W / Alt + BackspaceDelete word before cursor
Ctrl + UClear from cursor to start of line
Ctrl + KClear from cursor to end of line
Ctrl + CClear input line or cancel a running command
TabTab completion
DeleteDelete character at cursor

Command history stores up to 200 entries per project and persists across sessions.

Multi-session workflows

Power users can treat Appwrite Terminal like a desktop shell:

  • Multiple tabs: Up to 10 named sessions per project (Terminal 1, Terminal 2, …). Rename sessions from the sidebar.
  • Split panes: Split a session horizontally to compare command output side by side.
  • Reorder tabs: Drag root sessions in the sidebar to match your workflow.
  • Resizable panel: Drag the top edge to set terminal height; your preference is saved to account prefs.
  • Full screen: Expand Appwrite Terminal to the full viewport when you need maximum space.

Each session maintains its own scrollback buffer and running state.

Search, copy, and export

Long JSON responses are easier to work with thanks to built-in output tools:

  • Search ( / Ctrl + F): Find text across the full scrollback with case-sensitive matching and next/previous navigation.
  • Copy selection: Copy highlighted text from the buffer.
  • Copy last command: Quickly reuse the previous command elsewhere.
  • Copy all output: Copy the entire scrollback to the clipboard.
  • Export: Download terminal output as a .txt file for sharing or debugging.

URLs printed in command output are linkified. Ctrl + click (or Cmd + click) opens them in a new tab.

Performance and caching

The first time you open Appwrite Terminal in a browser, the Appwrite CLI package is downloaded and installed into the virtual filesystem. Subsequent visits restore the install from IndexedDB, so bootstrap skips the full npm install when the cached version matches. When the Console updates the pinned CLI version, Appwrite Terminal reinstalls automatically.

Who can use it

When organization roles are enabled, Appwrite Terminal is available to owners and developers on the project's organization. The Command Center Open terminal action and footer controls respect the same permission checks.

Try it now

Open any project in the Console and press + ; (or Ctrl + ;). When Appwrite Terminal opens, start with:

Bash
appwrite whoami
appwrite users list --json
appwrite functions list
appwrite tables-db list

Appwrite Terminal meets you where you already work: signed in, linked to your project, and ready for the next command.

Resources

Read next

Introducing Appwrite Explorer

Eldad Fux

Appwrite Explorer brings the Appwrite REST API into the Console. Browse every endpoint, build requests with guided forms, send live calls against your project, and inspect responses without leaving the browser.

8 min read

Ready to build?_