# Castella Packaging

> Package Castella applications for distribution using ux, PyInstaller, or Nuitka. Create executables, macOS app bundles, and cross-compile for other platforms. Use when this capability is needed.

- Skill: `tomevault-io/castella-packaging` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/castella-packaging`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/castella-packaging/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/castella-packaging

---


# Castella App Packaging

**When to use**: "package Castella app", "create executable", "bundle for distribution", "macOS app bundle", "code signing", "cross-compile"

## ux (Recommended)

[ux](https://github.com/i2y/ux) creates single executables using uv. End users don't need Python installed.

### Installation

```bash
uv tool install ux-py
```

### Basic Usage

```bash
ux bundle --project . --output ./dist/
```

### Configuration (pyproject.toml)

```toml
[tool.ux]
entry = "your_app"
include = ["assets/"]

[tool.ux.macos]
icon = "assets/icon.png"
bundle_identifier = "com.example.yourapp"
bundle_name = "Your App"
```

### macOS App Bundle

```bash
# Signed .app bundle
ux bundle --format app --codesign --output ./dist/

# With DMG
ux bundle --format app --codesign --dmg --output ./dist/

# With notarization
ux bundle --format app --codesign --notarize --dmg --output ./dist/
```

### Cross-Compilation

```bash
ux bundle --target linux-x86_64 --output ./dist/
ux bundle --target windows-x86_64 --output ./dist/
```

### Supported Targets

| Target | PyPI |
|--------|------|
| darwin-x86_64 | Yes |
| darwin-aarch64 | Yes |
| linux-x86_64 | Yes |
| linux-aarch64 | GitHub |
| windows-x86_64 | Yes |

## PyInstaller

Alternative bundler:

```bash
uv add --dev pyinstaller
uv run pyinstaller --onefile --windowed your_app.py
```

## Nuitka

Compiles Python to native code:

```bash
uv add --dev nuitka
uv run nuitka --standalone --onefile --disable-console your_app.py
```

## Reference

- `docs/packaging.md` - Full packaging documentation

---
> Source: [i2y/castella](https://github.com/i2y/castella) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-28 -->

