Repository navigation
Releases: getspecola/specola
Release list
Specola v0.2.6-beta.2
Specola v0.2.6-beta.2
Windows x64 installer, macOS arm64 DMG, Linux x64 AppImage and .deb (Debian, Ubuntu 22.04 or newer), the Wayland build for Omarchy and Arch (*-omarchy.tar.gz), and the static Core for OpenWrt routers (specola-core-openwrt-aarch64, -x86_64, -arm).
Use SHA256SUMS.txt to verify downloaded packages.
Specola v0.2.6-beta
Specola v0.2.6-beta
Windows x64 installer, macOS arm64 DMG, Linux x64 AppImage, and the static Core for OpenWrt routers (specola-core-openwrt-aarch64, -x86_64, -arm).
Use SHA256SUMS.txt to verify downloaded packages.
Specola v0.2.5-beta
Specola v0.2.5-beta
Beta prerelease. Core and the desktop client must come from the same release. The RPC protocol is not compatible with 0.2.4 or earlier.
This release rewrites the whole RPC layer as a small, typed, streaming MessagePack-RPC stack and rebuilds the desktop client on top of it. The Qt Quick client gets History, a traffic map, gateway management and license activation. On Windows, Core now runs as a service that the UI starts and stops for you.
Highlights
- New RPC framework. A lightweight MessagePack-RPC runtime with versioned contracts, streaming, notifications and flow control. The Core API is defined once in
api/*.toml, and the server and the C++, C# and Swift clients are generated from it. - Live updates. Core pushes lifecycle, profile and telemetry changes instead of waiting to be polled, and attributes connections to processes for routing and rule matching.
- New Qt Quick pages. History charts and analytics backed by local SQLite, an observed traffic map, gateway status and device management, and license activation.
- Windows Core service. The UI starts Core as a service and stops it when you quit, so it no longer outlives the UI. The service starts on demand, and TUN works without running the UI elevated.
- Native client previews. WinUI 3 (Windows) and SwiftUI (macOS) clients are included in the source tree. They are work in progress and are not in the release package.
Core
- Connections, DNS, Overview and Routing are served by dedicated Core services.
- Core exits within 10 seconds of starting shutdown.
- Core starts without a valid license instead of failing.
- Named pipe listeners on Windows are secured.
- JSON handling moved from nlohmann json to cJSON.
Desktop client
- A single coordinator now owns the application shell and Core lifecycle, so startup is faster. Core also has its own independent window.
- Proxy node, proxy group, rule and DNS editing, profile import, SSH credentials, server deployment and log inspection have been refined.
- Quitting from the tray or the Core error screen now exits the whole program.
- A release UI only uses the Core installed beside it, and Core starts without a console window.
- Platform-native tray backends have been added.
Windows installer and portable copy
- The installer stops both editions' services, offers to close a running Specola, and sets the service up so a normal user can start and stop it.
- Fixed a fresh install aborting with Windows error 80 instead of treating "service not installed" as normal.
- A portable copy (
--data-dir) registers its ownspecola-portable-servicewith a single UAC prompt. It refuses to start while the installed edition's Core is running.
Packaging
- This release publishes the Windows x64 installer only. The portable ZIP is opt-in (
SPECOLA_PACKAGE_PORTABLE=1) until its service registration no longer conflicts with the installed edition. - macOS arm64 (DMG) and Linux x64 (AppImage) packaging is in place, but those packages are not published with this release. Linux arm64 is no longer built; it stays a Core-only test target for eBPF in virtual machines.
- The privacy scan no longer flags Qt's own build paths, the CI runner account, or bundled third-party documentation. The macOS portability check ignores a dylib's own install name, and macOS Release Core keeps its
LC_UUIDafter stripping.
Known limitations
- Release archives do not include GeoIP / GeoSite datasets. Put them in the Specola configuration directory if your routing rules need them.
- Remote Core connections from an older client must be updated together with the Core.
- The portable edition and the installed edition share one machine-wide Core, so only one can run at a time.
specola v0.2.4-beta
This beta adds publish-ready Windows packages, restructures the Qt Quick client around explicit service and page lifetimes, and introduces the first standalone online licensing service. It also removes the retired Qt Widgets frontend and brings the wxWidgets client onto the shared MessagePack-RPC protocol.
Windows packages
- The Windows release workflow now produces both an Inno Setup installer and a portable ZIP. The installer uses the Specola icon in the executable, wizard and installed shortcuts.
- Portable packages carry the required Visual C++ runtime DLLs beside the application. The standalone VC redistributable executable and unused DirectX compiler libraries are no longer shipped.
- Packaging scans the staging tree, every ZIP entry and the generated installer for local build paths, user or machine identifiers, credentials, source files and debug artifacts. A failed scan stops the release.
- Public packages no longer include PDB or symbol archives. Core and wxWidgets release builds share the same size and interprocedural-optimization policy.
Qt Quick desktop client
- Application-wide services, Core session ownership and navigation are coordinated explicitly. Page-specific view models and cached page state keep drafts and background work scoped to the correct lifetime.
- The shell, tray, Overview, Profiles, Rules and SSH deployment flows now use the new service and page model architecture.
- Runtime UI data comes from the Core RPC client; the old mock API client and its conditional UI paths have been removed.
- Segmented controls support disabled entries and keyboard navigation. Dark surfaces and button hover transitions have been refined.
- QML declarative type checks now run after linking to catch registration and import problems during the build.
GUI and build cleanup
- The retired
gui/qt-widgetfrontend has been removed. Qt Quick remains the primary desktop client. - The wxWidgets client now has standalone Windows configure/build presets and declared vcpkg dependencies.
- wxWidgets communication has moved to the shared MessagePack-RPC methods and DTOs. Duplicate traffic and server charts were removed in favor of simpler status views.
- The UI design specification was refreshed for the aligned Overview layout, editable local rule-set entries and the latest page flows.
Licensing infrastructure
- A standalone Cloudflare Worker and D1-backed activation service now supports device activation, signed Ed25519 leases, refresh, deactivation, device limits and rate limiting.
- Administration tools support idempotent issue, list, inspect, revoke, restore, transfer and per-device release operations without storing plaintext activation keys in D1.
- A Node.js reference client covers device initialization, activation, refresh, offline verification, status and deactivation.
- This service is infrastructure for a later client release: it is not yet integrated with the C++ Core or Qt Quick UI, and its Ed25519 protocol is separate from the existing P-256 offline registration format.
Compatibility and limitations
- This is a beta prerelease.
- Anyone building the removed Qt Widgets frontend must migrate to Qt Quick or the standalone wxWidgets target.
- Release archives still do not include GeoIP / GeoSite datasets. Supply them separately in the Specola configuration directory when required by routing rules.
specola v0.2.3-beta
This beta focuses on first-run guidance, profile management and a more reliable desktop client. Core now checks GitHub for new releases, and a profile can keep TUN and eBPF settings side by side.
Profile format
[enhanced-mode.tun]and[enhanced-mode.ebpf]can be written as standard tables as well as inline tables.- A profile can keep both
tunandebpfsettings.backendselects which one is used, so switching backend no longer discards the other configuration. Profiles saved by Specola now keep both tables.
Existing 0.2.2 profiles load without changes.
Updates
- Core checks the latest stable GitHub release at startup and every hour, and notifies the desktop client when a newer version is available. Beta prereleases are not reported yet.
- The update dialog links to the release page. In-app downloads are not available yet.
Desktop interface
- Title bar: a unified title bar with window controls and an update indicator, and the Core offline overlay now fits the same layout.
- Profiles: redesigned page with Local and From URL groups, drag-and-drop import of
.tomlfiles, an import button, and actions to rename, remove, open in the editor or show in the folder. - First-run guidance: Connections, Proxies, Groups, Rules and DNS show an explanation and actions to add a profile when none is active, instead of an empty list.
- Overview: startup, error and no-profile notices appear inside the status card, so the page no longer shifts between states. The four bottom stats (connections, total traffic, Core memory, uptime) have equal fixed widths. Top traffic rows update in place instead of being rebuilt on every refresh. When only the system proxy is on, the page explains that per-app grouping needs Enhanced mode.
- Groups: loading and error states with Retry, filtering by group or member node, and guidance for profiles without proxy groups.
- Rules: rules whose target needs Enhanced mode and Rule mode say so.
- System tray: the popup shows Core connection state, the current route mode, System proxy and Enhanced mode, and guidance when no profile is active.
- Servers: reorganized server list with CPU, memory and disk metrics.
- SSH deployment: redesigned as a guided workflow: choose SSH servers, check access and OS, pick a protocol preset, and follow progress and logs while the engine is installed as a system service.
Fixes
- The last active profile is activated again after the desktop client starts Core.
- Background Overview refreshes no longer interfere with Core commands such as loading a profile, and a busy Core is no longer reported as disconnected.
- Changing a selection no longer triggers a full data refresh on list pages.
- Quitting from the tray, or with Ctrl+C in a console on Windows, closes the window and tray popup cleanly.
- Windows packages keep the Qt components needed by the Core overlay and the tray icon.
Getting started and limitations
- This is a beta prerelease.
- Adding a profile from a URL and updating it are shown in the interface but not yet supported by Core. Import a local TOML file instead.
- Profile modules, proxy deletion, rule destination probing and in-app update downloads are still pending Core support.
- eBPF and TUN require the appropriate system permissions.
- Release packages do not include GeoIP / GeoSite datasets. Place them in the Specola configuration directory when your rules need them.
specola v0.2.2-beta
This beta rebuilds the desktop interface around routing, simplifies the TOML profile format, and adds server deployment tools. Only the Linux x86_64 GCC build is published for this release.
Breaking changes: profile format
Profiles written for 0.2.1 must be updated. Core rejects unknown top-level tables.
[rule] list = [...]becomes[route] rules = [...].- Rule sets, GeoIP and GeoSite move under
[route]as inline tables, for examplerule-set = [{ name = "private", type = "local", behavior = "domain" }]andgeoip = { type = "local" }. [metadata]and[[proxy-provider]]are no longer accepted.- Enhanced mode uses
backend = "tun"orbackend = "ebpf"with inlinetun = { ... }orebpf = { ... }settings. - DNS settings are simplified, with
listener,nameserver-proxy,hostsandipv6options. - Nested
[proxy.tls]tables are written inline astls = { enabled = true }. - GeoIP, GeoSite and rule sets without a
pathare loaded from the Specola configuration directory (~/.config/specolaon Linux).
Convert Clash / mihomo YAML profiles with the Clash to Specola converter.
Proxy
- Hysteria2 and TUIC can be chained through a dialer proxy.
Desktop interface
- Overview: redesigned with a route distribution bar, the selected proxy group and node, live throughput and Top traffic by host, outbound or process.
- Sidebar: Monitor, Routing and Servers groups, a collapsible layout, live Core status, and alerts for new errors.
- Connections and Logs: separate pages with filtering, connection details, process routing, and a 10,000-entry log buffer.
- Proxies, Groups, Rules and DNS: dedicated pages with latency, traffic, group member selection, a rules editor with reordering, and DNS query and cache views.
- Profiles: subscription and local groups, usage details, and first-run guidance.
- Servers: SSH deployment and server monitoring with history charts.
- Settings: searchable categories, Core connection management, and version diagnostics.
- System tray: the tray now opens a single popup with route controls, traffic history and proxy selection. On macOS the native menu no longer opens alongside it.
- Shortcuts: configurable shortcuts cycle the route mode and turn proxying on or off. They are global on macOS and Windows, and work in the app window on Linux.
- Launch at login can be enabled under Settings → General.
- Core status: when Core is missing, stopped or failed, pages that need Core show what happened, the locations searched, and actions to start Core, search again, or choose the executable.
- System fonts are used throughout the interface.
Packaging
- Linux archive:
specola-0.2.2-linux-x86_64-gcc.tar.gz.
Getting started and limitations
- This is a beta prerelease.
- Update existing profiles to the new format before loading them.
- Import a TOML profile and activate it manually after launching the application.
- eBPF and TUN require the appropriate system permissions.
- Release packages do not include GeoIP / GeoSite datasets. Place them in the Specola configuration directory when your rules need them.
- Several workflows still show a pending state until Core support is available, including proxy deletion, rule destination probing, subscription and module operations, and in-app update downloads.
specola v0.2.1-beta
Specola is a proxy application with separate Core and desktop UI processes. This beta provides a Qt Quick desktop interface for configuration management, proxy control, connection inspection, routing rules, and logs.
Proxy and traffic control
- HTTP and SOCKS5 local proxy listeners.
- Support for protocols including Shadowsocks, Trojan, VMess, VLESS, Hysteria2, and SSH.
- Rule, Global, and Direct routing modes, with system proxy controls.
- Configurable DNS, traffic sniffing, and rule-based routing.
- TUN enhanced routing and Linux eBPF transparent proxy support, subject to platform capabilities, configuration, and permissions.
Desktop interface
- Overview: Core status, live upload/download rates, and traffic statistics.
- Connections: Filter and inspect connections, close selected connections, or close all active connections.
- Proxies and rules: Browse proxy and rule lists and inspect their details.
- Logs: Filter by severity, pause updates, inspect startup output, and open the log directory.
- System tray: Open the interface, switch routing modes, and control system proxy and enhanced routing.
Configuration management
- Import local TOML profiles, rename them, activate them, and reload configurations.
- Core manages profile files and their lifecycle.
- Importing a profile does not activate it. Select Use this Profile to start using it.
- Removing an inactive profile moves its file into the
.removeddirectory.
Interface and runtime behavior
- Light and dark themes, optional restoration of the last page at startup, and configurable automatic refresh intervals.
- Choose whether closing the window hides it or releases the interface while keeping the system tray available.
- Release desktop builds can launch and manage a local Core, or connect to an existing Core.
- Core and UI communicate over MessagePack-RPC, separating proxy operation from interface management.
Getting started and limitations
- This is a beta prerelease.
- Import a TOML profile and activate it manually after launching the application.
- TUN / eBPF require the appropriate system permissions.
- Release packages do not include GeoIP / GeoSite datasets by default. Supply these files separately when using rules that require them.
specola v0.2.0-beta
- Refined the wxWidgets desktop UI, including navigation, toolbar, and information panels.
- Simplified the Core API and updated UI client integration.
- Improved Core startup performance and background service lifecycle.
- Fixed Windows Core and wxWidgets build issues.
- Fixed startup crashes, shutdown handling, and request lifecycle issues.
specola v0.1.1-beta
🚀 Beta Release: v0.1.1-beta
This is a beta version intended for testing.
ChangeLog
- Massive Refactor for easy integration
- Rewrite the GUI in QML
- Add support for vless reality & vision
- Add support for hysteria & tuic
TODO
- User manual
- UX/UI polish
- Performance Improve
- Bug fix
specola v0.1.0-beta
🚀 Beta Release: v0.1.0-beta
This is a beta version intended for testing.
ChangeLog
- Massive Refactor for easy integration
- Add basic GUI in Qt widget
- Add detail stats & metrics for traffic
- Add support for AnyTLS protocol support
- Add full domain rule support
TODO
- User manual
- Langding page
- UX/UI polish
- Performance Improve