Other Skipper downloads
| Release date | Operating system | File | |
|---|---|---|---|
| 07/07/2026 | Skipper for Windows 32-bit | Microsoft Windows 32-bit Installer | Download |
| 07/07/2026 | Skipper for Windows 32-bit | Microsoft Windows 32-bit Portable version | Download |
| 07/07/2026 | Skipper for OS X 64-bit | Mac OS X 64-bit Installer | Download |
| 07/07/2026 | Skipper for OS X 64-bit | Mac OS X 64-bit Portable version | Download |
| 07/07/2026 | Skipper for Linux 64-bit | Linux 64-bit Portable version | Download |
CLI: apply-patch verb with 36 operations for all model object types (New!)
Custom SQL in migrations: raw before/after SQL on up()/down() (Laravel, Knex) - via the GUI Migration SQL editor, the Custom migration tab in Create revision, and the -cli-set-migration-sql verb. (New!)
CLI: -license-info command shows current license status (New!)
CLI: -license-activate command for headless license activation (no GUI/X server needed) (New!)
CLI: 16 command-line verbs for headless schema management (New!)
CLI: Three new auto-update verbs: check-update queries Harbor, download-update fetches release, apply-update installs (New!)
CLI: SkipperCli.exe console build for CI/CD and scripting use (New!)
CLI: AI-ready skill document bundled with installer (DocumentationAi/ folder) (New!)
CLI: export-diagram renders schema as PNG or PDF from command line (New!)
CLI: create-project, import-project, and import-database verbs (New!)
CLI: schema-summary, validate, compare, and export verbs (New!)
CLI: apply-merge verb for declarative target-state schema updates (New!)
CLI: Enhanced module name resolution with case-insensitive and prefix-match fallbacks
CLI: License commands (activate/info/unregister) now return structured JSON for automation instead of GUI dialogs
CLI: apply-patch returns per-op ids; add_* ops accept inline orm_attributes (incl. M:N per-side); $ref references within one patch; set_orm_attribute supports all object types.
CLI: -cli-export-ops round-trips unsigned columns and required polymorphic associations; write ops report errors on failed generation, unknown region, or bad $ref.
CLI: License errors in CLI mode now return structured JSON output instead of attempting to open GUI dialogs
CLI: Added -license-unregister command to deactivate and remove license via command line
Migration log now stores IANA timezone name (e.g., "Europe/Berlin") for deterministic UTC computation across environments
CLI: Added exception handling for std::exception and generic exceptions in patch operations
CLI: Automatic headless mode on Linux — QT_QPA_PLATFORM=offscreen set automatically when CLI flags detected without DISPLAY
CLI: apply-patch update_index accepts fields to add index columns (idempotent)
CLI: NULLABLE_PK and other validation warnings for schema quality checks
CLI: schema-summary includes orm_attributes on all object types
CLI: new entities auto-create PK, many-to-many auto-creates join entity with composite PK
CLI: JSON escape auto-correction and forward-slash namespace conversion for AI tools
CLI: lifecycle callbacks configurable in single operation via values parameter
CLI: ORM attribute manipulation with Entity.field dotted notation for fields
CLI: add_many_to_many and update_many_to_many now persist owner/inverse aliases (previously applied in memory but lost on save, leaving the template-generated aliases)
Doctrine 2: PHP 8.4 property hooks ({ get; set; }, including by-reference &get) are now preserved when re-exporting an existing entity. Regression introduced in 3.4.4.
CLI: license commands (activate/info/unregister) route trace and message output to stderr, keeping stdout clean JSON for automation
CLI: apply-patch rejects unknown field data types (e.g. unsignedBigInteger) at write time instead of failing later during validate
CLI: update package extraction now blocks Zip Slip path traversal
CLI: -cli-export no longer fails with "Directory []" for a relative project path.
Migrations: custom before/after SQL is no longer lost on save; multi-query ordering fixed.
CLI: entity/module references resolve by full qualified name (fixes duplicate short names across modules).
CLI: add_association links a pre-existing same-named foreign-key column instead of creating a duplicate; a column already used by another association still gets its own column.
Fixed an application crash during automatic session-state autosave: when the temporary state database file was locked by another process (e.g. a second running Skipper instance), the backup error escaped into the Qt event loop and terminated the application. Autosave failures are now handled safely and the locked-file situation is avoided.
Doctrine 2: Re-exporting an existing entity now preserves custom property visibility (public / protected / private) instead of resetting it. Regression introduced in 3.4.4.
CLI: add_field/update_field handle unsigned attribute
CLI: INDEX_NO_FIELDS validation warning for indexes without field columns
CLI: add_index accepts fields parameter as both string and array (previously string was silently dropped)
Fixed migration export producing UTC datetime diffs when exporting on a server with a different timezone than the original author
CLI: Removed export-classes and export-migrations verbs; export pipeline generates all files in single pass
CLI: Fixed silent crash when module names cannot be resolved; added comprehensive exception handling
CLI: Fixed attribute inflation; removed unnecessary export metadata, reducing file size ~5x
CLI: Fixed temp directory path leaking into saved project files
Doctrine2: Fixed export of has-lifecycle-callbacks attribute to PHP 8 attributes format - was incorrectly placed as ORM\Table parameter instead of standalone #[ORM\HasLifecycleCallbacks] attribute
CLI: Fixed Linux CLI crash when X11 display forwarding is broken or unavailable
CLI: Fixed headless CLI commands hanging indefinitely on Linux when no license is present
Fixed viewer license rejected with MAINTENANCE_EXPIRED (viewer has no maintenance field)
Fixed ORM attribute path resolution failing for short entity names and forward-slash paths
Fixed many-to-many join entity FK fields missing primary key and NOT NULL constraints
Fixed entity rename creating copy in temporary module instead of renaming in-place