Start on Celesto Free
Open the Pi package
@celestoai/pi from the official Pi package catalog.Before you start
You need:- Node.js 22.19 or newer.
- Pi installed and configured with a model provider.
- A Celesto account and API key. Create the key at celesto.ai under Settings > Security.
- A local project directory you want Pi to edit.
Run Pi remotely
Install the Celesto extension
pi --help and confirm that --celesto appears under extension flags.Sign in to Celesto
celesto auth status and confirm that an API key is saved..env file:.env to .gitignore. The bundled Celesto TypeScript SDK checks the shell environment first, then .env, then credentials saved by celesto auth login.Start Pi from your project
$HOME/workspace and routes Pi’s read, write, edit, and bash tools there. Nothing is copied from your machine yet.$HOME/workspace as the active workspace.Push your project to the computer
$HOME/workspace with the files in your local project. Run it once at the start of a session, before asking Pi to read or edit code.Check the remote workspace
not synchronized to an ID.Ask Pi to change the project
Esc to stop a long-running tool command.Sync changes back locally
/celesto push (or an already-shared revision) — without one, it reports that the workspace has no shared revision.git diff. The files changed by Pi now appear in your local project.What runs locally and remotely
/celesto push. From that point on, $HOME/workspace is the active copy that Pi’s tools operate on, and your local project stays unchanged until you run /celesto sync.
Explicit push and sync lifecycle
A typical session moves files in a fixed order:- Push once.
/celesto pushcopies the local project into the empty remote workspace and records a shared revision. It refuses to run if a shared revision already exists — use/celesto syncfrom that point onward. - Work remotely. Pi’s tools read, write, edit, and run shell commands inside
$HOME/workspace. Your local files are not touched. - Sync when you want the changes locally.
/celesto synccompares both copies with the shared revision and moves changed files in the direction they changed.
Synchronize local and remote changes
The extension records a shared revision after each successful push or sync. On the next/celesto sync, it compares both copies with that revision.
.remote-deleted marker. Resolve the local file, remove the conflict copy when you no longer need it, then run /celesto sync again.
/celesto sync before ending a session you care about.Reuse an existing Celesto computer
List your computers:$HOME/workspace remain untouched until you explicitly run /celesto push or /celesto sync. A non-empty legacy /workspace is moved to $HOME/workspace automatically when the home workspace is empty.
If the remote workspace already contains a project from a previous session, run /celesto sync to reconcile it with your local copy. If the remote workspace is empty (or you want to replace it with the current local project), run /celesto push.
Control computer cleanup
When Pi exits, an extension-created computer is deleted without any automatic sync. Any changes you have not copied back with/celesto sync are lost.
Keep the computer for another session by running:
celesto computer delete command you can use later. Keeping the computer preserves the remote workspace, but you are still responsible for retaining a local copy of anything you want to keep — run /celesto sync before exiting.
Computers selected with --celesto-computer are always caller-owned and are never deleted by the extension.
Files excluded from explicit transfers
/celesto push and /celesto sync read .gitignore and then apply project-specific .celestoignore overrides. They also exclude common secrets and large generated directories by default, including:
.envfiles and common credential files.- Pi, cloud-provider, SSH, and package-manager credentials.
node_modules, build output, coverage output, and.next.- Symbolic links.
- Individual files larger than 25 MB.
.celesto-conflictsand the synchronization metadata file.
.git directory remains available so Pi can inspect branches, status, and diffs.
Add extra exclusions to .celestoignore:
Security boundary
The extension is designed so the model connection stays local:- Pi calls your model provider from your machine.
- Model credentials are not forwarded as shell environment variables.
- The Celesto API key stays in the local Pi process and is not forwarded to the remote computer.
- Local
.envfiles remain excluded from workspace transfers by default. - Celesto only receives files you push or sync that pass the exclusion rules.
- Tool paths stay inside
$HOME/workspace. - Shell commands can use the rest of the isolated Celesto computer.
- Remote command output streams back to the local Pi interface.
.gitignore and .celestoignore before your first push. Files intentionally included in the project can be copied to Celesto even when they contain sensitive application data.
Pi commands
Troubleshoot setup
No Celesto credentials were found
No Celesto credentials were found
CELESTO_API_KEY in the same shell or add it to the project’s local .env file.Pi does not recognize --celesto
Pi does not recognize --celesto
The free plan has no available computer slot
The free plan has no available computer slot
curie with a name from the list. Delete an unused computer when you no longer need it:Push refuses to copy the current directory
Push refuses to copy the current directory
pi --celesto, and run /celesto push again.Synchronization reports conflicts
Synchronization reports conflicts
.celesto-conflicts/<revision>/ in your local project. Compare each .remote file with the local path, keep the intended content, and run /celesto sync again.A command keeps running
A command keeps running
Esc in Pi. The extension cancels the output stream and terminates the remote process group. Run /celesto status to confirm the computer remains connected.Another workspace transfer is already running
Another workspace transfer is already running
/celesto push or /celesto sync runs at a time. Wait for the current transfer to finish, then rerun the command.