CLI Reference#
The VIS command is available after installing VIStk. All commands are case-insensitive
and accept single-letter abbreviations.
Initialize a project#
VIS new
Run from the folder where you want to create the project. Creates the .VIS/ folder,
copies default templates, generates Host.py, and prompts for:
Project name
Company name
Copyright string (defaults to company name)
Initial version
Default screen name
Add a screen#
VIS add screen <screen_name>
Creates a new screen script from template, registers it in project.json, and creates
the matching Screens/<screen>/ and modules/<screen>/ folders.
The CLI will prompt for:
Script filename
Whether the screen should have its own
.exe(release)Icon name
Description
Whether the screen opens as a tab inside the Host (
tabbed)Whether this screen is the default screen (prompted only if no default is set yet)
Add elements to a screen#
VIS add screen <screen_name> elements <element_name>
VIS add screen <screen_name> elements <e1>-<e2>-<e3>
Creates f_<element>.py in Screens/<screen>/ and a blank m_<element>.py in
modules/<screen>/, then runs stitch to wire them into the screen script. Multiple
elements can be created in one call by separating names with -.
Stitch a screen#
VIS stitch <screen_name>
Scans Screens/<screen>/ and modules/<screen>/ for all f_* and m_* files
and rewrites the screen script. Generates fully-qualified imports under #%Screen
Elements and #%Screen Modules, build(pane) calls under #%Build Screen
Elements, and guarded loop callbacks under #%Predefined Loop Functions. This is
called automatically when adding elements. Run manually if you add files without using
the CLI.
Release the project#
VIS release -f <suffix> -t <type> -n <note>
Builds a PyInstaller spec for all screens marked release: true in project.json,
compiles them to native binaries, bundles required assets (Icons, Images,
.VIS), and creates a standalone installer executable. The binaries land in dist/.
Flag |
Short |
Description |
|---|---|---|
|
|
Suffix appended to the output folder name |
|
|
Version increment type: |
|
|
Release note (informational) |
|
|
Comma-separated group names (from |
|
Comma-separated screen names. Build an installer containing only the
listed screens. May be combined with |
Examples:
VIS release -Groups Core
VIS release -Screens WorderEditor,FloorView
VIS release -Groups Core -Screens DashboardA
Release a single screen#
VIS release Screen <screen_name> -f <suffix>
Temporarily marks all other screens as non-releasing, builds only the named screen, then restores the others.
Launch the Host#
VIS <project_name>
VIS <project_name> <screen_name>
Launches the Host for the current project, or brings an already-running Host to the
foreground. <project_name> must match the project title in project.json
(case-sensitive).
VIS <project_name>— starts the Host if not running, then opens the default screen.VIS <project_name> <screen_name>— starts the Host if not running, then opens the named screen.
Both forms start the Host as a subprocess and communicate via IPC. If the Host is already running, only the IPC message is sent.
Example — if the project is named MyApp:
VIS MyApp # open default screen
VIS MyApp WorkOrders # open a specific screen
Rename a screen#
VIS rename <screen_name> <new_name>
Renames a screen throughout the project:
Renames the key in
project.json → ScreensRenames the script file if it follows the default convention; updates the
scriptfieldRenames
Screens/<oldname>/→Screens/<newname>/Renames
modules/<oldname>/→modules/<newname>/and renamesm_<oldname>.py→m_<newname>.pyRewrites all
Screens.<oldname>.andmodules.<oldname>.import references in the screen scriptUpdates
default_screeninproject.jsonif it points to the old nameRuns
stitchautomatically so import blocks are regenerated
Edit a screen attribute#
VIS edit <screen_name> <attribute> <value>
Directly sets any attribute in a screen’s project.json entry.
Attribute |
Type |
Notes |
|---|---|---|
|
string |
Must point to an existing |
|
bool |
|
|
string / none |
|
|
string |
Free-form description |
|
bool |
Whether this screen opens as a Host tab |
|
bool |
When |
|
string |
Must be |
|
string / none |
|
|
list |
Comma-separated screen names that must be installed alongside this
one. Use |
|
list |
Comma-separated screen names recommended alongside this one. |
|
string / none |
Custom message shown by the installer’s dependency dialog and by the runtime missing-screen banner. |
Examples:
VIS edit WorkOrders single_instance true
VIS edit Dashboard tabbed false
VIS edit Settings version 2.0.0
VIS edit Dashboard requires "WorkOrders,TimeClock"
VIS edit Dashboard warn_message "Dashboard needs the WorkOrders screen to load data."
Manage screen groups#
VIS group add <group_name> [description]
VIS group remove <group_name>
VIS group assign <screen> <group_name> [true|false]
VIS group unassign <screen>
VIS group default <screen> <true|false>
VIS group list
Maintains the release_info.groups block in project.json. Screen
groups bundle related screens under a single checkbox in the installer
GUI; the expand arrow reveals indented sub-checkboxes so end-users can
pick individual members. Each member carries a default flag
controlling whether it is initially checked.
Subcommand |
Description |
|---|---|
|
Creates an empty group with an optional description. The name must be a valid identifier, not clash with any screen name, and not collide with a reserved VIS command. |
|
Removes a group. Member screens themselves are left intact; they simply become ungrouped. |
|
Places a screen in a group. A screen belongs to at most one group;
assigning reassigns and removes the screen from any previous group.
The optional |
|
Removes a screen from whichever group currently contains it. |
|
Flips the |
|
Prints every group with its description and members (including each member’s default flag). |
Examples:
VIS group add Core "Main application screens"
VIS group assign WorkOrders Core
VIS group assign FloorView Core
VIS group assign Diagnostics Core false
VIS group list
Manage documentation URLs#
VIS docs set <screen_name> <url>
VIS docs set --default <url>
VIS docs clear <screen_name>
VIS docs clear --default
VIS docs list
Maintains the per-screen docs field and the project-level
defaults.docs field in project.json. Used by the built-in
VIStk.Objects.open_active_screen_docs() helper to drive a Help
button. URLs are passed verbatim to webbrowser.open() — the
author writes a fully-qualified URL (https://, file:///, etc.).
Resolution order at click-time is: active screen’s docs →
defaults.docs → no-op. --default is the project-wide
fallback.
Examples:
VIS docs set --default https://example.com/docs
VIS docs set Settings https://example.com/docs/settings
VIS docs clear Settings
VIS docs list
Stop the Host#
VIS stop
Sends a quit signal to the running Host via IPC. The Host shuts down gracefully. Prints a message if no Host is running.
Check version#
VIS -v
Prints the installed VIStk version.