JellyDocs

↑↓ to move · ↩ to open · Esc to close

Project

Contributing

Build Jelly from source, the ground rules for changes, and how commits and tests work.

Jelly is a small, opinionated codebase. Read AGENTS.md before opening a pull request. It is the source of truth for how the repo is built and reviewed.

Set up

You need Xcode 26+ on macOS 26+.

git clone git@github.com:jelly-terminal/jelly.git
cd jelly
make debug

Ground rules

  • macOS 26+ only. No iOS or cross-platform code.
  • Swift 6 strict concurrency. Never block the main thread.
  • Glass is chrome only, never behind terminal text.
  • Bad config never crashes the app. It becomes a diagnostic and a default.
  • No code comments. Names carry the meaning.
  • No new dependencies beyond SwiftTerm and Sparkle without opening an issue first.

Tests

Only logic that is likely to break and hard to notice by using the app is tested: TOML parsing, config import, colour parsing, the pane tree, shell launch and font matching.

make test

Commits

One line with a conventional prefix such as feat: or fix:. Write it as a user-readable sentence, because it becomes the release note.

Docs live in the app repo under docs/. If your change affects behaviour or a config key, update the matching doc in the same commit. To improve this site, use the Edit this page link on any page.

Edit this page on GitHub