Metadata-Version: 2.4
Name: synqt
Version: 0.0.1
Summary: The SynQt CLI: scaffold, build, check, serve, and run a SynQt project.
Author: The SynQt Authors
Maintainer: Alexandre 'kidev' Poumaroux
License-Expression: Apache-2.0
Project-URL: Homepage, https://synqt.org/
Project-URL: Documentation, https://synqt.org/getting-started/
Project-URL: Repository, https://github.com/Kidev/SynQt
Project-URL: Issues, https://github.com/Kidev/SynQt/issues
Project-URL: Changelog, https://github.com/Kidev/SynQt/releases
Keywords: qt,qml,webassembly,wasm,framework,cli,web,qt6
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: C++
Classifier: Programming Language :: JavaScript
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Internet :: WWW/HTTP
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyYAML>=6.0
Dynamic: license-file

<!-- SPDX-FileCopyrightText: 2026 Alexandre 'kidev' Poumaroux -->
<!-- SPDX-License-Identifier: Apache-2.0 -->

# synqt

The command line tool for [SynQt](https://synqt.org/), a framework for building complete
web systems in Qt and QML with no third party servers to stand up.

`synqt` scaffolds a project, resolves and pins its toolchain (the Qt SDK and the
Emscripten compiler), builds every entity in it (the browser client to WebAssembly, the
services natively), issues the project's mesh certificates, validates the topology, and
runs the whole system locally with file watching and hot reload.

**Documentation, tutorials, and the full reference: [synqt.org](https://synqt.org/).**

## Install

```sh
pipx install synqt
```

`pip install synqt` works too. `pipx` is the recommendation only because this is an
application and not a library. There is also a single-file binary that needs no Python at
all, if you would rather have that:

```sh
curl -fsSL https://get.synqt.org/install.sh | sh   # macOS and Linux
irm https://get.synqt.org/install.ps1 | iex        # Windows, in PowerShell
```

Both are cut from the same tag and behave identically.

## Use

```sh
synqt create        # scaffold a project, asking a short set of questions
cd my-app
synqt dev           # build, serve, watch, and open a browser
```

`synqt new my-app --auth github` is the same scaffolder without the questions, for a
script, and `synqt add entity` adds each further entity by name. `synqt doctor` reports
what is installed and what is missing, and it is the first thing to run when something
will not build.

The full command reference is in [build system and
CLI](https://synqt.org/build-system-and-cli/), and the walkthrough is in [getting
started](https://synqt.org/getting-started/).

## What this package does not include

Only `synqt` itself is Python. Everything it builds is Qt. The CLI pins the Qt SDK and
the Emscripten toolchain to one version per project, so every machine and every teammate
compiles with the same versions. `synqt doctor` prints the exact `aqt` and `emsdk`
commands that install whatever is missing into the project's `synqt/toolchain/` directory.
A Qt already installed under `/opt/Qt`, `~/Qt` or `QTDIR` at the pinned version is used as
it is. Installing the toolchain takes a few minutes and a few gigabytes of disk.

The framework's own C++ and CMake sources ship inside this package, so a `pipx`-installed
`synqt` can scaffold and build without a SynQt checkout. Setting `SYNQT_ROOT` to a
checkout overrides them, which is what you want when working on SynQt itself.

## Licensing

`synqt`, and all of SynQt's own source, is Apache-2.0. What you build with it inherits
Qt's license instead. Under open source Qt the browser client is GPLv3 and is conveyed to
every visitor, so you have to publish its source. A commercial Qt license removes that
obligation. `synqt new`, `synqt build --release` and `synqt doctor` each say so at the
point it matters, and [licensing](https://synqt.org/licensing/) is the full analysis.
