panasyn 0.1.0

A lightweight GPU-accelerated terminal emulator for macOS and Linux.
# Panasyn

<img src="./assets/brand/background.png" alt="Panasyn terminal preview" width="720">

Panasyn is a lightweight GPU terminal for macOS and Linux. 

Core terminal rendering, tabs, selection, scrollback, OSC 8 links, static
background image functionality, and replay/fuzz developer tools are in place.

<img src="./assets/screenshot.png">

## Install

### Install with Cargo


```sh
cargo install panasyn
panasyn
```

`cargo add panasyn` is for adding Panasyn as a dependency inside another Rust
project. For installing and running the terminal app, use `cargo install`.

### Install from GitHub

Use this when you want the current repo version:

```sh
git clone <repo-url>
cd panasyn
cargo install --path .
panasyn
```

Or run it without installing:

```sh
cargo run --release
```

## Configure

Panasyn reads its config from:

```text
~/.config/panasyn/config.toml
```

Create the file if it does not exist:

```sh
mkdir -p ~/.config/panasyn
nano ~/.config/panasyn/config.toml
```

Example:

```toml
[font]
family = "OCR A Extended"
size = 14.0
line_height = 1.4

[appearance]
background = "#02050A"
foreground = "#E6E6E6"
selection_background = "#0066CC"
selection_foreground = "#BFBFBF"
cursor_background = "#00A2FF"
cursor_foreground = "#02050A"
cursor_thin = "#00A2FF"
inverse_background = "#0066CC"
hyperlink_background = "#0066CC"

[appearance.background_image]
path = ""
opacity = 0.18
mode = "cover"        # cover, contain, or stretch
max_dimension = 1920  # large images are downscaled before upload
```

After editing the config, restart Panasyn. 

## What It Supports

- GPU text rendering through `wgpu` and `glyphon`.
- Native PTY shell sessions.
- Tabs with independent shells.
- Scrollback, selection, paste, cursor styles, SGR colors, and mouse reporting.
- Static background images.
- OSC 8 hyperlinks with an allowlist for safe link opening.
- Headless replay, benchmarks, and ANSI fuzzing for development.

## Release Notes

This is the first version release of Panasyn. For now, distribution is through
the GitHub repo and Cargo. A packaged macOS app/DMG is planned.



## Developer Setup

Install Rust, then run:

```sh
cargo run
```

Useful checks before a pull request:

```sh
cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test
cargo test --all-features
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features
cargo audit
cargo package --locked
cargo build --release --all-features
```

Developer-only replay tools:

```sh
panasyn replay /path/to/session.jsonl --headless --machine
panasyn bench --frames 3 --pty-bytes 65536 --machine
panasyn fuzz 1000 --categories
```

Repo map:

```text
src/app/       window lifecycle, tabs, config, input
src/ansi/      ANSI/VT parser integration
src/terminal/ terminal grid, cells, scrollback, selection
src/renderer/  GPU renderer and background image layer
src/pty/       platform PTY session management
src/replay/    replay, benchmark, fuzz, and regression tooling
assets/brand/  README and brand artwork
assets/macos/  macOS app icon assets
docs/          architecture and subsystem notes
scripts/       local development helpers
tests/         integration tests
```