{"id":50229248,"url":"https://github.com/mahdiarfrm/conterm","last_synced_at":"2026-06-12T09:01:05.511Z","repository":{"id":359681383,"uuid":"1246511606","full_name":"mahdiarfrm/conterm","owner":"mahdiarfrm","description":"A modern macOS terminal built on libghostty","archived":false,"fork":false,"pushed_at":"2026-06-08T19:14:58.000Z","size":33873,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T21:12:22.273Z","etag":null,"topics":["ghostty","macos","swift","swiftui","terminal"],"latest_commit_sha":null,"homepage":"https://mahdiarfrm.github.io/conterm/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mahdiarfrm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-22T09:07:50.000Z","updated_at":"2026-06-08T19:15:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mahdiarfrm/conterm","commit_stats":null,"previous_names":["mahdiarfrm/conterm"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/mahdiarfrm/conterm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahdiarfrm%2Fconterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahdiarfrm%2Fconterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahdiarfrm%2Fconterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahdiarfrm%2Fconterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mahdiarfrm","download_url":"https://codeload.github.com/mahdiarfrm/conterm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahdiarfrm%2Fconterm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34236552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ghostty","macos","swift","swiftui","terminal"],"created_at":"2026-05-26T18:00:25.033Z","updated_at":"2026-06-12T09:01:05.506Z","avatar_url":"https://github.com/mahdiarfrm.png","language":"Swift","funding_links":[],"categories":["Terminal Apps \u0026 Clients"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/banner.png\" alt=\"Conterm — a modern macOS terminal\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/mahdiarfrm/conterm/releases/latest\"\u003e\u003cimg alt=\"Latest release\" src=\"https://badgen.net/github/tag/mahdiarfrm/conterm?color=B59CFF\u0026label=release\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/mahdiarfrm/conterm/blob/main/LICENSE\"\u003e\u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/license-MIT-7BD7FF\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/mahdiarfrm/conterm/stargazers\"\u003e\u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/mahdiarfrm/conterm?style=flat\u0026color=B59CFF\" /\u003e\u003c/a\u003e\n  \u003cimg alt=\"Platform\" src=\"https://img.shields.io/badge/macOS-14%2B-7BD7FF\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/mahdiarfrm/conterm/releases/latest\"\u003e\u003cb\u003eDownload\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://mahdiarfrm.github.io/conterm/\"\u003eWebsite\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/mahdiarfrm/conterm/issues\"\u003eReport a bug\u003c/a\u003e\n\u003c/p\u003e\n\n**Conterm** is a macOS terminal built on [Ghostty's](https://github.com/ghostty-org/ghostty)\nengine, adding Liquid Glass chrome, splittable panes, a multi-source `⌘K`\ncommand palette, and live status for AI coding agents like Claude Code and\nopencode.\n\n\u003e Conterm is an independent frontend built on **libghostty**. It is not\n\u003e affiliated with the Ghostty project. The terminal engine (rendering, parsing,\n\u003e fonts, themes, shell integration) is Ghostty's; Conterm adds the macOS app\n\u003e around it.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/demo.gif\" alt=\"Conterm demo\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003eFull demo: \u003ca href=\"https://github.com/mahdiarfrm/conterm/raw/main/docs/assets/demo.mp4\"\u003e90s MP4 with audio\u003c/a\u003e · \u003ca href=\"https://mahdiarfrm.github.io/conterm/\"\u003elanding page\u003c/a\u003e\u003c/sub\u003e\n\u003c/p\u003e\n\n## Contents\n\n- [Features](#features)\n- [Install](#install)\n- [Updating](#updating)\n- [Keyboard shortcuts](#keyboard-shortcuts)\n- [Configuration](#configuration)\n- [Backup \u0026 restore](#backup--restore)\n- [Building from source](#building-from-source)\n- [How it fits together](#how-it-fits-together)\n- [License](#license)\n\n## Features\n\n### Panes, tabs \u0026 sessions\n\n- **Recursive split panes** — `⌘D` splits right, `⌘⇧D` splits down, to any\n  depth. Drag the dividers to resize; focus any pane by number with `⌥1`–`⌥9`.\n- **Tabs, top or sidebar** — move the tab bar to a left sidebar; it can\n  auto-hide and slide back in when the cursor reaches the left edge.\n- **Tab groups** — color-coded groups with inline rename, reordering, and a\n  live list of every tab in each group.\n- **Session restore** — every window, tab, pane, split, and working directory\n  comes back exactly where you left it on relaunch.\n\n### Command palette (`⌘K`)\n\nOne launcher over many sources:\n\n- App commands, **shell history** (re-run any zsh/bash command), your\n  `~/.ssh/config` hosts (with `Include` support), and **every open pane across\n  every window**.\n- Built-in **notes**, **tab-group** management, and quick **\"open this\n  directory in Finder / Cursor\"**.\n- **Reorder or hide** the commands you don't use, from *Settings → Palette*.\n\n### Agent-aware\n\n- **Status pills** — a per-pane pill shows when\n  [Claude Code](https://www.anthropic.com/claude-code) or\n  [opencode](https://opencode.ai) is *ready*, *thinking*, or *needs you*, with\n  a notification center for what finished while you were away. Hooks are\n  installed non-destructively.\n- **Command markers** *(shell integration)* — a ✓ / ✗ chip with the run time\n  when a command fails or takes a while, a notification when a long command\n  finishes while you've stepped away, and `⌘↑` / `⌘↓` to jump between prompts.\n\n### Updates and backups\n\n- **Automatic updates** — checked from GitHub on launch; a Liquid Glass pill\n  appears in the toolbar when a new release is out, or run *Check for Updates*\n  any time. No external service involved.\n- **Backup \u0026 restore** — save your sessions, app settings, and Conterm +\n  Ghostty config to a single file, and restore them on another machine\n  (*Settings → Config*).\n\n### Appearance\n\n- **Liquid Glass chrome** *(macOS 26)* — refractive glass behind every surface\n  with a Clear↔Frosted slider and light/dark tint, plus a battery-saving flat\n  fill when the window is inactive. On macOS 14–15 the app runs fully with\n  plain (non-glass) chrome.\n- **Live system stats** — optional CPU / RAM / network sparklines in the tab\n  bar, with a popover for detailed graphs.\n- **Scrollback search** (`⌘F`), **SSH-host detection** in the pane chrome, and\n  synthesized UI sound effects.\n\n## Install\n\nDownload the latest `.dmg` from the\n[Releases page](https://github.com/mahdiarfrm/conterm/releases/latest), open it,\nand drag `Conterm.app` into `Applications`.\n\n**First launch:** Conterm is ad-hoc codesigned (open-source, not notarized\nthrough a paid Apple Developer account), so the first launch needs one step:\nright-click `Conterm.app` → **Open** → **Open**. If macOS still refuses:\n\n```bash\nxattr -dr com.apple.quarantine /Applications/Conterm.app\n```\n\n### Requirements\n\n- macOS **14 (Sonoma)** or later — tested through macOS 26 (Tahoe).\n- **Apple Silicon** (M1 or later). Intel is untested.\n- Liquid Glass / blur chrome requires **macOS 26**; on 14–15 the app is fully\n  functional with plain chrome.\n\n## Updating\n\nConterm checks GitHub for new releases on launch and shows an update pill in\nthe toolbar when one is available — click it to install and relaunch. You can\nalso trigger it from **Conterm → Check for Updates** or *Settings → Config*,\nand turn the automatic check off there.\n\n## Keyboard shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `⌘T` / `⌘N` | New tab / new window |\n| `⌘W` | Close active pane (or tab) |\n| `⌘D` / `⌘⇧D` | Split right / split down |\n| `⌥1`–`⌥9` | Focus pane *N* in the current tab |\n| `⌘1`–`⌘9` | Jump to tab *N* |\n| `⌘↑` / `⌘↓` | Jump to previous / next prompt |\n| `⌘K` | Command palette |\n| `⌘F` | Search scrollback |\n| `⌘,` | Settings |\n| `Esc` | Dismiss palette / settings / search |\n\n## Configuration\n\nConterm reads a single file: `~/.config/conterm/config`, in\n[Ghostty's config syntax](https://ghostty.org/docs/config/reference).\n*Settings → Config* shows the path and offers Open / Reload / Reset actions.\n\nAlready use Ghostty? Add a one-line include so both apps share settings:\n\n```ini\nconfig-file = ~/.config/ghostty/config\n```\n\nEdits in either file then apply to both on the next reload; anything written\n*below* the include overrides Ghostty's value for Conterm only. **Safe mode**\n(*Settings → Config*) boots on Ghostty's built-in defaults and ignores the\nfile — useful for recovering from a bad edit.\n\nA few common options:\n\n```ini\nfont-family = \"JetBrains Mono\"\nfont-size = 14\n\ncursor-style = bar             # bar | block | underline\ncursor-style-blink = true\n\nbackground-opacity = 0.9\nbackground-blur = 20\n\n# command = \"/opt/homebrew/bin/fish\"   # default is $SHELL\n```\n\n## Backup \u0026 restore\n\nFrom *Settings → Config*, **Back Up** writes a single `.contermbackup` file\ncontaining your app settings, sessions, notes, tab groups, and both the Conterm\nand Ghostty config files. **Restore** reads it back and relaunches — handy when\nmoving to a new machine.\n\n## Building from source\n\nRequires the Swift toolchain (Command Line Tools is enough — no full Xcode):\n\n```bash\nxcode-select --install\n\ngit clone https://github.com/mahdiarfrm/conterm.git\ncd conterm\n\nbash scripts/setup.sh    # fetch GhosttyKit.xcframework\nbash scripts/build.sh    # build + assemble Conterm.app\nopen ./Conterm.app\n```\n\n`scripts/build.sh` produces a release, arm64, ad-hoc-codesigned `Conterm.app`\nwith the bundled config, terminfo, and icon.\n\n## How it fits together\n\nConterm is a SwiftUI + AppKit app that drives libghostty through\n`GhosttyKit.xcframework`. Each pane owns a `ghostty_surface_t` and the `NSView`\nit renders into; the SwiftUI layer handles tabs, splits, the palette, and the\nglass chrome. The terminal core — GPU rendering, parsing, fonts and ligatures,\nthemes, and shell integration — is entirely Ghostty's.\n\n```\nSources/Conterm/\n  Main.swift        @main + AppDelegate, window management\n  State/            tabs, pane tree, preferences, stores\n  Ghostty/          libghostty Swift bridge (surfaces, input)\n  UI/               SwiftUI shell: palette, tabs, chrome, effects\n```\n\nContributions and issue reports are welcome on the\n[issue tracker](https://github.com/mahdiarfrm/conterm/issues).\n\n## License\n\nMIT — see [LICENSE](LICENSE). Built on\n[libghostty](https://github.com/ghostty-org/ghostty); not affiliated with the\nGhostty project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahdiarfrm%2Fconterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmahdiarfrm%2Fconterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahdiarfrm%2Fconterm/lists"}