Laravel Cloud (Unofficial) for VS Code
Manage Laravel Cloud applications, environments, and
deployments without leaving VS Code.
This is an unofficial extension built on the Laravel Cloud API.

Illustrative screenshot with made-up application and resource names.
Features (v1)
- Applications & Environments tree in the activity bar: every application
in your organization, its environments, and — per environment — folders for
Deployments (recent deployments), Databases (its database cluster,
if any: name, type, and region/compute/storage/public-endpoint on hover),
Domains (hostname/SSL/origin verification status), Cache (if any:
name, type, region, size), and Buckets (object storage: name, public/
private visibility, jurisdiction).
- Live status — environment status (running / deploying / hibernating /
stopped) and deployment status, with icons that update on refresh.
- Deploy the latest commit to an environment, with a confirmation prompt.
- Start / Stop an environment.
- Manage environment variables in a webview panel — add, edit, and
remove key/value pairs for an environment, opened by clicking an
environment or via its context menu.
- Toggle a database's public endpoint — click a database in the tree to
open a panel showing its details, with a confirmation prompt before
enabling public access (not required for disabling it). Not offered for
database types that don't have a public-access setting (e.g. Neon
Postgres).
- View deployment logs (build + deploy steps) in an output channel — from
the latest deployment or any deployment in the list; the tree also shows
each deployment's relative time (e.g. "Succeeded · 5m ago").
- Open in browser — jump to an environment's live URL or its page in the
Laravel Cloud dashboard.
- Usage view in the sidebar — org-wide current spend, resource costs
(databases/caches/buckets/websockets), and per-application costs, on a
configurable auto-refresh timer.
- Deployment notifications — a toast when a deployment succeeds or
fails, however it started (the extension's Deploy/Start commands,
push-to-deploy, or a teammate), with a "View Logs" action.
- Token stored securely in VS Code's SecretStorage (OS keychain), never
in settings or workspace files.
Getting started
- Install the extension.
- Open the Laravel Cloud icon in the activity bar.
- Click Set API Token and paste a token created from your Laravel Cloud
organization settings (Settings → API tokens → Create API Token).
- Your applications and environments will load automatically.
Commands are also available from the Command Palette (Laravel Cloud: …) and
via right-click context menus on tree items.
Configuration
| Setting |
Default |
Description |
laravelCloud.apiBaseUrl |
https://cloud.laravel.com/api |
Override only if you're using a custom/self-hosted API endpoint. |
laravelCloud.autoRefreshInterval |
30 |
Seconds between automatic tree refreshes. 0 disables auto-refresh. |
laravelCloud.usageRefreshInterval |
60 |
Minutes between automatic Usage view refreshes. 0 disables auto-refresh (manual refresh only). |
laravelCloud.notifyOnDeploymentComplete |
true |
Show a notification when a deployment succeeds or fails. |
Architecture
The codebase is split so the UI can grow without reworking how it talks to
Laravel Cloud:
src/
services/ Framework-agnostic API client (LaravelCloudService) + types.
No `vscode` import anywhere in this folder — reusable as-is
by the webview-based management panel.
util/ Small JSON:API response helpers + shared error formatting.
auth/ Token storage (SecretStorage) + prompt.
tree/ TreeDataProvider + TreeItem subclasses (v1 UI).
panel/ Webview UIs — the environment-variables panel
(EnvironmentPanel), the database panel (DatabasePanel), and
the sidebar Usage view (UsageView) — each with its own
host<->webview message protocol and browser-side script
(src/panel/webview/), all built on top of the same
`LaravelCloudService`.
notifications/ DeploymentWatcher — polls every environment's current
deployment id for changes and shows a toast once a newly
started one finishes.
commands/ Command registrations that call into `services`.
logs/ Plain-text rendering of deployment logs for the output channel.
extension.ts Wires it all together on activate().
v2 in progress: environment variables and a database's public-endpoint
toggle are covered, and domains/cache/buckets are visible in the tree
(read-only). Still pending: secrets (needs a public-key-encryption
handshake), management panels for domains/cache/buckets (currently
view-only — no toggling a bucket's visibility or a domain's redirect yet),
the rest of database management (compute/storage sizing, snapshots/
restores), and scaling/instance settings — each can be added as another
panel in src/panel/ on top of the existing LaravelCloudService without
touching what's already there.
Development
npm install
npm run watch # esbuild in watch mode
Press F5 in VS Code (with this folder open) to launch an Extension
Development Host with the extension loaded.
npm run compile # type-check only
npm run lint # eslint
npm run package # produce a .vsix with @vscode/vsce
Notes
- This extension is not built or maintained by Laravel/Anthropic — it's a
community client for the public Laravel Cloud API.
- API tokens can be scoped (permissions + resource scoping) from the Laravel
Cloud dashboard; a token scoped to "view environments" + "trigger
deployments" is enough for this extension's current feature set.