Contributing
Development targets main in Cretezy/cretty_private. Read the root AGENTS.md
when working with a coding agent.
Clone and build
Section titled “Clone and build”Repository access is required while the repository is private:
git clone https://github.com/Cretezy/cretty_private.gitcd cretty_privatecargo build --lockedcargo run --lockedRustup selects Rust 1.97.1 from rust-toolchain.toml. Use
cargo run --release --locked for an optimized build. Keep Cargo.lock committed.
On Linux, install a C compiler/linker, pkg-config, and desktop development libraries. Ubuntu builds use:
sudo apt-get install build-essential pkg-config libxkbcommon-dev libwayland-dev libegl1-mesa-devA working graphics driver and desktop session are needed to run the app. The
system linker is the default; Mold is optional. On macOS, install Xcode Command
Line Tools with xcode-select --install.
Install or package a local build
Section titled “Install or package a local build”Run ./scripts/install-from-local.sh to install for the current user. macOS
bundling uses cargo-bundle 0.11.0:
cargo install cargo-bundle --version 0.11.0 --lockedcargo build --release --locked --package crettycargo bundle --release --package crettyopen target/release/bundle/osx/Cretty.appLocal app bundles are unsigned. See Releases before distributing
one. Icons and bundle metadata live in cretty/icons/ and cretty/Cargo.toml;
run ./generate.sh from cretty/icons/ when changing the source icon.
Windows development is experimental. Install Rust and Visual Studio Build Tools
with the Desktop development with C++ workload, then run
cargo build --release --locked --package cretty. Include the Windows version,
architecture, and workarounds when reporting results; no Windows installer is
part of the supported release matrix.
Run checks
Section titled “Run checks”From the repository root:
cargo fmt --all -- --checkcargo check --workspace --all-targets --lockedcargo nextest run --workspace --all-targets --lockedcargo clippy --workspace --all-targets --locked -- -D warningsIf Nextest is unavailable, use cargo test --workspace --all-targets --locked.
Include --workspace: plain Cargo commands otherwise select only the app.
Add tests at the affected boundary and check native desktop behavior as well;
compilation alone does not validate focus, graphics, clipboard, or installation.
Run cargo audit after dependency updates and review advisory reachability.
Update documentation
Section titled “Update documentation”The guide uses Astro Starlight. Edit docs/src/content/docs/ and update
docs/astro.config.mjs when changing navigation.
./scripts/docs checkcd docsbun install --frozen-lockfilebun run buildFor settings changes, update the Rust schema/documentation or renderer, then run
./scripts/docs generate. Never hand-edit the generated reference. Keep related
guides, shortcuts, CLI examples, and screenshots synchronized. Use neutral demo
content and real, borderless app captures. See docs/AGENTS.md for conventions.
Project layout
Section titled “Project layout”| Path | Purpose |
|---|---|
cretty/ |
Application UI, tabs, windows, settings, themes, and host integration. |
cretty_terminal/ |
Iced widget, PTY, protocols, renderer, selection, search, links, and graphics. |
tools/cretty_config_docs/ |
Configuration-reference renderer. |
docs/ |
Astro Starlight documentation. |
scripts/ |
Installation, documentation, and release helpers. |
The terminal crate README contains the host API and example; the crate is not published separately.
Submit a change
Section titled “Submit a change”Keep changes focused and describe the problem, resulting behavior, and validation.
Conventional Commit titles (fix: ..., feat: ..., docs: ...) feed release-please.
See Releases for the release process. Report vulnerabilities
privately using the security policy.
