This release is a pre-release and may not be stable for production use.
Blokjutsu
A local, permissively licensed, open-source Mac app for generating and editing images from text prompts with the open-weight MOSS-Image model.
To use Blokjutsu, download it and start with the User's Guide. The rest of this page is for developers.
What it is
- A Mac app (PySide6/Qt) around MOSS-Image's diffusers pipeline, running on the Apple GPU through PyTorch's MPS backend: text to image, image to image, variations, inpainting, outpainting, cropping, and upscaling, with live previews and a scrolling history
- Describe image and Enhance prompt, written by MOSS-Image's own text encoder (Qwen3.5-9B) with its output layer re-attached
- Local: models are downloaded once, on request, from a separate process; the app itself runs with the Hugging Face libraries in offline mode and never goes online
- Open source all the way down: the app, MOSS-Image's code, and its weights are all under the Apache License 2.0, a permissive license
Requirements
- A Mac with Apple silicon (M1 or later) and macOS 12.3 or later
- 32 GB of memory or more; 48 GB or more is comfortable
- About 40 GB of free disk space, mostly for the model
Install
Disk image: the Download for Mac button above (1.0.0rc4, about 360 MB). Open it and drag Blokjutsu to Applications.
Terminal installer: installs a private Python with the tested library versions into
~/Library/Application Support/Blokjutsu.noindex/ and builds ~/Applications/Blokjutsu.app. Nothing else on
the Mac is changed. Read it first if you like.
curl -LsSf https://formdo.github.io/blokjutsu/install.sh | sh
To uninstall the app it installed (keeping images, settings, and the model):
curl -LsSf https://formdo.github.io/blokjutsu/install.sh | sh -s -- --uninstall
From PyPI: Blokjutsu needs Python 3.10 or later; a virtual environment is strongly recommended. The exact
library versions it was tested with are in constraints.txt, which pip can use with
-c constraints.txt.
python3 -m venv .venv
source .venv/bin/activate
pip install blokjutsu
blokjutsu
Contributing
CONTRIBUTING.md covers setting up a development environment, running the tests, the design and modules, building the .dmg, and releasing. The User's Guide's Technical notes explain how each control works.
Built on MOSS-Image
Blokjutsu is an independent desktop front end for MOSS-Image, the text-to-image model and pipeline by the OpenMOSS Team and MOSI.AI. Blokjutsu is not affiliated with or endorsed by them. All of the image-making is theirs.
- Repository: https://github.com/OpenMOSS/MOSS-Image
- Technical report: https://arxiv.org/abs/2610.23374
- User guide: https://github.com/OpenMOSS/MOSS-Image/blob/main/USERGUIDE.md
If you use images or results from Blokjutsu in research, please cite MOSS-Image:
@misc{mossimage2026,
title = {MOSS-Image},
author = {{OpenMOSS Team}},
year = {2026},
howpublished = {\url{https://github.com/OpenMOSS/MOSS-Image}}
}
@misc{mossimage2026report,
title = {MOSS-Image Technical Report},
author = {{MOSI.AI}},
year = {2026},
eprint = {2610.23374},
archivePrefix = {arXiv},
url = {https://arxiv.org/abs/2610.23374}
}
What it uses
The models are downloaded from Hugging Face, a site that hosts open AI models, and only when you ask. MOSS-Image's model is published there as MOSS-Image-SFT; its text encoder and image decoder come from Qwen and FLUX.2 and are included in that download.
| model | by | license | role |
|---|---|---|---|
| MOSS-Image-SFT | OpenMOSS Team | Apache-2.0 | MOSS-Image's model, used by default |
| MOSS-Image-Base | OpenMOSS Team | Apache-2.0 | the untuned model, for people training their own versions (optional) |
| Qwen3.5-9B | Qwen Team, Alibaba Cloud | Apache-2.0 | reads prompts (part of MOSS-Image); with its output layer, downloaded separately, writes descriptions |
| FLUX.2 VAE | Black Forest Labs | Apache-2.0 | turns the model's output into pixels (part of MOSS-Image) |
Python libraries, installed alongside:
| library | license | role |
|---|---|---|
| PyTorch, torchvision | BSD-3-Clause | numerical engine on the Apple GPU |
| Diffusers | Apache-2.0 | runs the MOSS-Image pipeline |
| Transformers, Accelerate | Apache-2.0 | text encoder, describing |
| huggingface_hub, safetensors | Apache-2.0 | model files and downloads |
| httpx | BSD-3-Clause | the confirmed downloads |
| PySide6 / Qt | LGPL-3.0 | the window and controls |
| Pillow | MIT-CMU | image files |
| NumPy | BSD-3-Clause | arrays |
| PyObjC | MIT | macOS system icons and app name |
Local by design
Blokjutsu uses the internet only to download the models, once, and only after a confirmation dialog; it does not
go online to generate, edit, or store images, or to check for updates. Everything it writes is kept in
~/Library/Application Support/Blokjutsu.noindex, out of Time Machine backups and Spotlight, and PNGs hold only
the image unless the user turns on Settings in PNG. The User's Guide's
Running locally lists every file and what Delete all history does
with it.
Roadmap
What comes next is in ROADMAP.md.
Bug reports and feature requests
Please report bugs and request features as GitHub issues. For help using Blokjutsu, see the User's Guide and its Frequently asked questions page.
Etymology
Blokjutsu (BLOK-joot-soo, /ˈblɒk.dʒuː.tsuː/), noun. The art of the block.
From Danish blok, "block," and Japanese jutsu (術, じゅつ), "art" or "technique." The name comes from how MOSS-Image works: it treats an image as blocks of pixels, each 16 × 16 square one unit for the model, and transforms them step by step from noise into the finished image.
Design inspiration
The block designs in the icon and the app draw on
- the Kohs block design test, introduced by Samuel C. Kohs in 1920: colored cubes, some faces split diagonally, arranged to match a pattern
- Froebel's gifts, the wooden building blocks of Friedrich Fröbel's first kindergartens
- the primary colors and simple geometry of the Bauhaus
Authors
Blokjutsu was written by Bob Carpenter together with Claude, Anthropic's AI model.
License
Copyright 2026 Bob Carpenter. Apache License 2.0; see LICENSE and NOTICE.
blokjutsu/moss_image.py is MOSS-Image's pipeline code, copied unchanged, and blokjutsu/moss_forward.py is
adapted from it (both Apache-2.0). "MOSS-Image" is the OpenMOSS Team's name and is used here only to say what
this app runs.
Metadata
Release files for blokjutsu 1.0.0rc4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| blokjutsu-1.0.0rc4.tar.gz | 157.2 kB | With provenance | Details for blokjutsu-1.0.0rc4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| blokjutsu-1.0.0rc4-py3-none-any.whl | Python 3 | none | any | Details for blokjutsu-1.0.0rc4-py3-none-any.whl |
Total release size: 317.3 kB
Release files / blokjutsu-1.0.0rc4.tar.gz
| Download URL | blokjutsu-1.0.0rc4.tar.gz |
|---|---|
| Size | 157.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
07c83f16256e154a4e25c26fc9925a82a4d20d6a8c97750974f4db85cb4e5dfe
|
|
BLAKE2b-256 checksum How to use checksums |
a78bd1eda96cf49f43ef7af2beffdcb76e10e282738d67f20b607f3d8ae3ce45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.
Transparency logRelease files / blokjutsu-1.0.0rc4-py3-none-any.whl
| Download URL | blokjutsu-1.0.0rc4-py3-none-any.whl |
|---|---|
| Size | 160.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1a709f7f2b56a2d1c3044a7fc2c5d06c6f3bd91a91687f4386872dcf75c11b9e
|
|
BLAKE2b-256 checksum How to use checksums |
5abdb4f77443c46d76571ed823b1f9108b5d9e392bff085602c67d4dafd4e392
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.
Transparency logSecurity for blokjutsu 1.0.0rc4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for blokjutsu-1.0.0rc4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.