Shopify CLI Dashboard — User Guide
A web UI wrapper around the shopify CLI with device-auth prompts, live console streaming, versions browser, and profile-based path helpers.
1) What this app does
- Run Shopify CLI from the browser. Execute a validated subset of CLI actions and see live STDOUT/ERR with ANSI colors.
- One-click actions. Hoverable sidebar groups: Auth, App, Theme, Hydrogen, Plugins, Config, Webhooks, Other.
- Device-auth helper. When the CLI requests device login, a modal shows the verification code and a button to open the login page.
- Profiles & paths. Pick Organization & App; the UI computes project, TOML, and profile paths automatically.
- Link & config flow.
app config linkfollowed by an automaticapp config use -c <name>on success. - Detected URLs list. The console output is parsed for links and surfaced separately.
- Optional viewers & diagnostics. Webhooks viewer and Doctor probe for the
shopifybinary. - Versions browser. Fetches
app versions list --jsonfor your project path.
2) Quick Start
First-time sign-in
- Visit
/shopify-cli; unauthenticated users are redirected to the login page. - If no users exist, create the first admin on the First-time setup card.
- Log in with email and password; you’ll be redirected to the dashboard.
Run your first action
- Open the dashboard and (optionally) set Project Path and Extra Args (e.g.,
--json -c default). - Click an action like Auth → auth login and watch the console.
- If device-auth is requested, the modal shows your code and a link to Shopify’s device login.
- Use the Profile modal to select Organization/App and store defaults.
3) UI Walkthrough
Top bar
- Doctor probe to ensure the
shopifybinary is reachable.
Sidebar menus
Primary groups and examples:
| Group | Examples |
|---|---|
| Auth | auth login, auth logout |
| App (Info & Env) | app info, app env show, app open, app logs |
| App (Dev/Build/Deploy) | app dev, app build, app deploy, app release, app versions list |
| App (Init & Config) | app init, app config link, app config use |
| Theme | theme dev, theme push, theme publish, theme list |
| Hydrogen | hydrogen dev, hydrogen build, hydrogen link |
| Plugins | plugins install, plugins update, plugins reset |
| Config | config autocorrect on|off|status |
| Webhooks | app webhook trigger |
| Other | whoami, commands, help, search, update, version |
Main content areas
- Selected action shows the command being executed.
- Detected Links displays clickable URLs parsed from the console.
- Console renders ANSI-colored output with optional raw view.
- Webhooks viewer (optional) for quick local inspection.
Modals
- Device Auth: verification code + “Open login page”.
- Profile: choose Organization & App, store defaults, view computed paths.
- Manage Versions: fetch and display
app versions list --json.
4) How commands run (under the hood)
-
Frontend posts
/api/cli/commandswith{'}}action, projectPath, extraArgs{{ '}. - Server validates against an allow-list and spawns the
shopifyprocess. - Output is streamed as Server-Sent Events from
/api/cli/stream/:jobId. - Client processes out, err, and meta (URLs, device-auth code/URL, profile prompt), then done.
- For successful
app config link, the client auto-runsapp config use -c <name>.
Project-scoped commands:
app ... actions run in the provided/computed project path; non-app actions run in the server’s current working directory.
5) Authentication & first-user bootstrap
/shopify-cli/loginprovides sign-in and (if no users exist) a first-user admin creation card.- After login/registration, the session stores user info and redirects to the dashboard.
/api/cli/allow-registerdrives the bootstrap card’s visibility.
6) Profiles & paths
Profiles persist organization/app defaults (org ID/name, client_id, store domain). The UI computes and displays:
- Project Root:
<baseDir>/<Org>__o<id>/<App>__a<clientIdPrefix>/ - TOML Path:
<ProjectRoot>/toml/ - Profile Path:
<ProjectRoot>/profile/
7) Security & validation
- All work-performing routes require an authenticated session.
- Commands are allow-listed via explicit regex groups; risky actions are blocked.
- App-scoped actions verify the working directory exists and resembles a Shopify app.
8) Troubleshooting
- No output? Use Doctor to confirm the CLI is on the PATH and verify your session.
- Device-auth not showing? Ensure the CLI printed a standard “User verification code” line.
- Empty versions list? Ensure the correct project path and permissions.
- Webhooks viewer empty? Wire the backend to your data source.
9) Notes & Extensibility
- Extend the allow-list to support new commands safely.
- Swap the Org/App stubs with your Partners/GraphQL data.
- Easily theme with your site CSS; this page is standalone and framework-free.
