CLI Reference#
Warning
Project Neo is currently in Technical Preview. Features described in this section may change before general availability.
All commands are invoked as nextgen <command>. Run nextgen with no arguments to print the full command list.
nextgen create project#
Scaffolds a complete extension project in a new directory. Must be run from the parent directory where you want the project folder created.
nextgen create project
Prompts
Prompt |
Description |
|---|---|
Project name |
Confirms or collects the name. Accepted characters are letters, digits, hyphens, underscores, and dots. No spaces. |
Squirro API endpoint |
Your instance URL. Must start with |
Refresh token |
From My Account → API Access in your Squirro profile. |
Port confirmation |
If the default ports (3001, 5555) are in use, the CLI suggests alternatives. |
What gets created
Complete project directory with all configuration files.
src/manifest.tswith an empty dashboards array.src/dashboards/directory for your components..envwith your API credentials.All dependencies installed, including
@squirro/nextgen-core.
Tip
If credential verification fails due to a wrong URL or expired token, you can continue anyway and fix it later with nextgen config.
nextgen create dashboard#
Adds a new dashboard to an existing extension project. Must be run from within a project directory.
nextgen create dashboard [<name>]
The dashboard name can be passed as a positional argument to skip the name prompt:
nextgen create dashboard Analytics
Prompts
Prompt |
Default |
Description |
|---|---|---|
Dashboard name |
None |
Displayed in the sidebar. |
Route path |
Kebab-case of name |
URL segment, for example |
Lucide icon name |
|
Icon name from lucide.dev/icons. Use the kebab-case name shown there. |
What gets created
src/dashboards/{ComponentName}.tsx: starter dashboard component.src/manifest.ts: new entry added to the dashboards array.src/main.tsx: import and development route added.
nextgen remove dashboard#
Interactively removes a dashboard from the project. Must be run from within a project directory.
nextgen remove dashboard
The CLI lists all dashboards found in src/manifest.ts and prompts you to select one. After confirmation, it:
Removes the entry from
src/manifest.ts.Removes the import and route from
src/main.tsx.Deletes the component file from
src/dashboards/.
Warning
This command permanently deletes the component file. Commit or back up your work before running it.
nextgen dev#
Starts the local development environment. Must be run from within a project directory.
nextgen dev
Two servers start in parallel:
Server |
Default port |
Role |
|---|---|---|
Dev proxy |
5555 |
Serves the pre-built Project Neo host, handles authentication, and proxies API requests. |
Extension dev server |
3001 |
Builds and serves your extension via Module Federation. |
Open http://localhost:5555 in your browser.
Port conflicts: if either port is already in use, nextgen dev exits with an error. Change the port in .env using EXTENSION_PORT or DEV_PROXY_PORT, or stop the conflicting process.
Live reload: the dev server watches your src/ directory and reloads the browser automatically when files change.
Stopping: press Ctrl+C to shut down both servers cleanly.
Tip
Keep http://localhost:3001/mf-manifest.json open in a second browser tab during development. If it returns JSON, your extension server is running correctly.
nextgen build#
Builds the extension for production deployment. Must be run from within a project directory.
nextgen build
Outputs optimized static files to dist/:
dist/
├── mf-manifest.json # Module Federation manifest (loaded by the host)
├── *.js # Bundled extension chunks
└── *.css # Styles
Deploy the entire dist/ folder to a static file server or CDN. For deployment details, see the Building and Deploying page.
nextgen config#
Interactively edits the .env configuration. Must be run from within a project directory.
nextgen config
Presents a menu for updating API credentials and port settings. For API credentials, the CLI validates the new token against the Squirro API before saving. If validation fails, you can save anyway and correct it later.
nextgen info#
Displays a summary of the current project configuration and dashboards. Must be run from within a project directory.
nextgen info
Example output:
┌──────────────────────────────────────────┐
│ Project Info │
│ │
│ Project: my-dashboards │
│ Version: 1.0.0 │
│ API: https://your-instance.example.com│
│ Token: abc...xyz │
│ Dashboards: 2 │
│ - Analytics /analytics │
│ - Reports /reports │
└──────────────────────────────────────────┘
The Token field shows the SQUIRRO_TOKEN value from your .env file, masked to the first and last three characters. Use it to confirm that a token is set and to identify which token is active when switching between projects. To validate the token against the API or replace it, run nextgen config and select API credentials.
nextgen translations init#
Scaffolds translation files for your extension. Must be run from within a project directory. Designed to run once during initial setup.
nextgen translations init
Creates the following files:
src/translations/en.json: English strings (also createsde,fr, andit).src/translations/use-translation.ts: typeduseExtTranslation()hook.
Also updates src/manifest.ts to include the translations configuration.
Note
This command fails if translations are already configured in the project.
For full details, see the Translations page.
nextgen translations keys#
Lists all translation keys available in the Project Neo host application. Must be run from within a project directory.
nextgen translations keys
To filter by keyword, use the --search flag:
nextgen translations keys --search chat
Use this command to discover keys that your extension can override. Keys are printed in namespace:dotted.path format, which is the same format used in your translation JSON files.
Example output:
chat:welcome.inputPlaceholder
chat:welcome.title
common:actions.save
common:actions.cancel
...
247 keys listed.