editor again after a reboot to restart the process.
Requirements
- Node.js 22.13 or newer
- npm, which is included with standard Node.js installations and is used by
pascal update - A browser if you want the CLI to open the editor automatically
Start the editor
Run the package directly:npx first run makes the editor healthy, Pascal installs that
exact CLI version globally through npm. The shorter pascal command is then available
immediately in the current terminal and future sessions. Pascal does not modify a shell
profile or add an alias; npm places the executable in its configured global binary
directory, which Node.js installations normally add to PATH.
Non-interactive and --json runs do not install a global command. If npm cannot perform
the global installation because of local permissions, the editor remains running and
the CLI prints the equivalent npx commands plus the manual installation command.
You can use an equivalent package runner to launch the CLI:
update command uses
npm to resolve another published release. Automatic installation of the shorter command
currently applies to interactive npx first runs; use the global installation command
below after pnpm dlx or bunx.
On the first run, the CLI:
- Prepares the local data directory and copies its bundled editor into
~/.pascal/runtime/<version>. - Asks the operating system for an available loopback port.
- Starts the editor and an authenticated MCP service as detached processes on separate operating-system-assigned loopback ports, then waits for both health checks.
- Opens
http://pascal.localhost:<port>in your browser and, for an interactivenpxrun, installs the same CLI version globally. - Prints the direct
pascal status,pascal logs --follow, andpascal stopcommands.
.localhost hostname resolves to the loopback service; it is not exposed
to your network.
The CLI shows each setup and startup stage in the terminal. It does not assume port
3000 or scan a fixed range, so it avoids competing with other development servers.
A value passed with --port requests that specific port; when it is already occupied,
Pascal reports the conflict and safely selects an available port instead. Running
editor again reuses the healthy process instead of starting a second one; in that
case --port does not move the existing process. Stop or restart the editor to select
a new port.
Use --no-open on a headless machine or when you do not want to launch a browser:
--foreground to keep the editor attached to the current terminal for debugging:
start and editor --no-open both install the bundled runtime if needed and ensure it
is running without opening a browser. start is the shorter lifecycle command for that
operation.
Install the command globally first
The interactivenpx flow handles this automatically. You can instead install the
shorter pascal command before starting the editor:
Command reference
For a non-interactive installation where the global command is unavailable, prefix a
command with your package runner—for example,
npx @pascal-app/cli status.
pascal agent claim and pascal agent status contact hosted Pascal. They read the
agent key from PASCAL_API_KEY and do not store or print it. Claim requests a
short-lived code; status verifies the key and reports its bounded claim state. Neither
command uploads or links local projects. Direct integrations can call
POST /api/auth/agent/claim/start and GET /api/auth/agent/status with the same Bearer
key instead.
Update the editor
Install and activate the editor runtime that the latest published CLI package targets:1.0.0
with the version you need:
~/.pascal/runtime, starts it through the normal
health gate, and only leaves it active when that check passes. If activation fails, the
CLI restores the previous runtime and restarts the previous editor when it was running.
It does not replace ~/.pascal/data/pascal.db or update a globally installed pascal
command.
Files and persistence
Runtime, data, logs, and process state have separate lifecycles. The CLI has no command
that deletes project data. Runtime versions remain installed to make rollback possible,
and
pascal doctor warns after more than three versions accumulate. There is no automated
prune command in the initial release. When disk space is constrained, stop Pascal and
remove only version directories that are not named by current-runtime.json. Never
remove the data directory when pruning runtimes.
Before each detached start, an existing editor.log larger than 10 MiB rotates to
editor.log.1. One previous log is retained.
The paths above use Unix notation. On Windows, the same .pascal directory is under
your user profile. Run npx @pascal-app/cli info --json to see the resolved paths on
your machine.
Troubleshooting
Start with diagnostics, then inspect the process and log:- Pascal selects an available port automatically. If you request a port with
--portand another application owns it, the CLI reports the fallback port in the terminal. - If an interactive
npxrun cannot install the global command, it reports the npm failure without stopping the editor. Continue withnpx @pascal-app/cli statusor resolve your npm global-install permissions and runnpm install --global @pascal-app/cli. - A reboot stops the editor process. Run
npx @pascal-app/cli editoragain; the initial CLI does not install a system startup service. - If the installed copy of the runtime bundled with the current CLI is incomplete or
damaged,
pascal editorreplaces that runtime copy and starts it again. Project data remains separate under~/.pascal/data. - The CLI refuses to stop a recorded PID unless its health endpoint returns the same
Pascal instance identifier. This prevents a stale state file from stopping an
unrelated process. If the recorded editor is alive but its health route is unavailable,
inspect
pascal status --jsonand usepascal stop --force; the CLI still verifies that the operating-system command points to the recorded runtime before signaling it. - Pascal binds only to loopback and does not expose an unauthenticated editor to your network. Public/LAN binding is not supported in the initial release.
Plugin development
The CLI currently manages the editor runtime; it does not install plugin code from a GitHub repository or npm.plugin add, plugin remove, plugin validate, and
plugin pack are not available yet. The reserved plugin directory and lock file do
not make the managed runtime extensible in this release.
To develop a plugin today, follow Create a plugin, use the
Nature plugin as the standalone example,
and integrate the package through the reviewed discovery configuration in a host source
checkout. The CLI-managed runtime cannot be modified to load that source package.
Connect a local AI agent
pascal editor starts MCP automatically. The MCP port remains dynamic to avoid
collisions, while pascal mcp connect gives clients a stable stdio command that reads
the private runtime state and connects to the current port. You do not copy the local
token or manage another server.
pascal mcp setup claude. Remove a previous
user-scoped manual entry before reloading or restarting Claude Code:
/mcp to remove or disable any project- or local-scoped duplicate so only
plugin:pascal-agent-skills:pascal remains active. If you use Claude Code without the
plugin, pascal mcp setup claude remains the manual setup path.
For Cursor, Claude Desktop, and other mcp.json clients:
pascal://agent-guide, call list_scenes, then load_scene before editing an existing
project. MCP saves use the same ~/.pascal/data/pascal.db database and appear in the
browser through the local scene event stream.
setup requires the stable pascal command and refuses to overwrite an existing
Pascal MCP entry. Run pascal mcp config to print the generic JSON or configure a
different client manually.
To edit projects in your hosted Pascal account instead, use the authenticated hosted
setup in Connect an AI agent. Claude plugin users must disable the
plugin-provided local server in /mcp before adding the hosted connection.