{"id":23659411,"url":"https://github.com/ghostty-org/ghostty","last_synced_at":"2026-01-11T22:50:06.343Z","repository":{"id":269888629,"uuid":"475553026","full_name":"ghostty-org/ghostty","owner":"ghostty-org","description":"👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.","archived":false,"fork":false,"pushed_at":"2025-05-08T19:36:58.000Z","size":55138,"stargazers_count":30344,"open_issues_count":194,"forks_count":812,"subscribers_count":175,"default_branch":"main","last_synced_at":"2025-05-08T19:37:13.155Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ghostty.org","language":"Zig","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/ghostty-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-29T17:38:26.000Z","updated_at":"2025-05-08T18:56:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"6270bf48-389e-496f-a1a8-3dcfb9c4a355","html_url":"https://github.com/ghostty-org/ghostty","commit_stats":null,"previous_names":["ghostty-org/ghostty"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostty-org%2Fghostty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostty-org%2Fghostty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostty-org%2Fghostty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostty-org%2Fghostty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ghostty-org","download_url":"https://codeload.github.com/ghostty-org/ghostty/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253670888,"owners_count":21945350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-12-29T02:46:02.072Z","updated_at":"2026-01-11T22:50:06.337Z","avatar_url":"https://github.com/ghostty-org.png","language":"Zig","readme":"\u003c!-- LOGO --\u003e\n\u003ch1\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/fe853809-ba8b-400b-83ab-a9a0da25be8a\" alt=\"Logo\" width=\"128\"\u003e\n  \u003cbr\u003eGhostty\n\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    Fast, native, feature-rich terminal emulator pushing modern features.\n    \u003cbr /\u003e\n    \u003ca href=\"#about\"\u003eAbout\u003c/a\u003e\n    ·\n    \u003ca href=\"https://ghostty.org/download\"\u003eDownload\u003c/a\u003e\n    ·\n    \u003ca href=\"https://ghostty.org/docs\"\u003eDocumentation\u003c/a\u003e\n    ·\n    \u003ca href=\"CONTRIBUTING.md\"\u003eContributing\u003c/a\u003e\n    ·\n    \u003ca href=\"HACKING.md\"\u003eDeveloping\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n## About\n\nGhostty is a terminal emulator that differentiates itself by being\nfast, feature-rich, and native. While there are many excellent terminal\nemulators available, they all force you to choose between speed,\nfeatures, or native UIs. Ghostty provides all three.\n\nIn all categories, I am not trying to claim that Ghostty is the\nbest (i.e. the fastest, most feature-rich, or most native). But\nGhostty is competitive in all three categories and Ghostty\ndoesn't make you choose between them.\n\nGhostty also intends to push the boundaries of what is possible with a\nterminal emulator by exposing modern, opt-in features that enable CLI tool\ndevelopers to build more feature rich, interactive applications.\n\nWhile aiming for this ambitious goal, our first step is to make Ghostty\none of the best fully standards compliant terminal emulator, remaining\ncompatible with all existing shells and software while supporting all of\nthe latest terminal innovations in the ecosystem. You can use Ghostty\nas a drop-in replacement for your existing terminal emulator.\n\nFor more details, see [About Ghostty](https://ghostty.org/docs/about).\n\n## Download\n\nSee the [download page](https://ghostty.org/download) on the Ghostty website.\n\n## Documentation\n\nSee the [documentation](https://ghostty.org/docs) on the Ghostty website.\n\n## Contributing and Developing\n\nIf you have any ideas, issues, etc. regarding Ghostty, or would like to\ncontribute to Ghostty through pull requests, please check out our\n[\"Contributing to Ghostty\"](CONTRIBUTING.md) document. Those who would like\nto get involved with Ghostty's development as well should also read the\n[\"Developing Ghostty\"](HACKING.md) document for more technical details.\n\n## Roadmap and Status\n\nThe high-level ambitious plan for the project, in order:\n\n|  #  | Step                                                      | Status |\n| :-: | --------------------------------------------------------- | :----: |\n|  1  | Standards-compliant terminal emulation                    |   ✅   |\n|  2  | Competitive performance                                   |   ✅   |\n|  3  | Basic customizability -- fonts, bg colors, etc.           |   ✅   |\n|  4  | Richer windowing features -- multi-window, tabbing, panes |   ✅   |\n|  5  | Native Platform Experiences (i.e. Mac Preference Panel)   |   ⚠️   |\n|  6  | Cross-platform `libghostty` for Embeddable Terminals      |   ⚠️   |\n|  7  | Windows Terminals (including PowerShell, Cmd, WSL)        |   ❌   |\n|  N  | Fancy features (to be expanded upon later)                |   ❌   |\n\nAdditional details for each step in the big roadmap below:\n\n#### Standards-Compliant Terminal Emulation\n\nGhostty implements enough control sequences to be used by hundreds of\ntesters daily for over the past year. Further, we've done a\n[comprehensive xterm audit](https://github.com/ghostty-org/ghostty/issues/632)\ncomparing Ghostty's behavior to xterm and building a set of conformance\ntest cases.\n\nWe believe Ghostty is one of the most compliant terminal emulators available.\n\nTerminal behavior is partially a de jure standard\n(i.e. [ECMA-48](https://ecma-international.org/publications-and-standards/standards/ecma-48/))\nbut mostly a de facto standard as defined by popular terminal emulators\nworldwide. Ghostty takes the approach that our behavior is defined by\n(1) standards, if available, (2) xterm, if the feature exists, (3)\nother popular terminals, in that order. This defines what the Ghostty project\nviews as a \"standard.\"\n\n#### Competitive Performance\n\nWe need better benchmarks to continuously verify this, but Ghostty is\ngenerally in the same performance category as the other highest performing\nterminal emulators.\n\nFor rendering, we have a multi-renderer architecture that uses OpenGL on\nLinux and Metal on macOS. As far as I'm aware, we're the only terminal\nemulator other than iTerm that uses Metal directly. And we're the only\nterminal emulator that has a Metal renderer that supports ligatures (iTerm\nuses a CPU renderer if ligatures are enabled). We can maintain around 60fps\nunder heavy load and much more generally -- though the terminal is\nusually rendering much lower due to little screen changes.\n\nFor IO, we have a dedicated IO thread that maintains very little jitter\nunder heavy IO load (i.e. `cat \u003cbig file\u003e.txt`). On benchmarks for IO,\nwe're usually within a small margin of other fast terminal emulators.\nFor example, reading a dump of plain text is 4x faster compared to iTerm and\nKitty, and 2x faster than Terminal.app. Alacritty is very fast but we're still\naround the same speed (give or take) and our app experience is much more\nfeature rich.\n\n\u003e [!NOTE]\n\u003e Despite being _very fast_, there is a lot of room for improvement here.\n\n#### Richer Windowing Features\n\nThe Mac and Linux (build with GTK) apps support multi-window, tabbing, and\nsplits.\n\n#### Native Platform Experiences\n\nGhostty is a cross-platform terminal emulator but we don't aim for a\nleast-common-denominator experience. There is a large, shared core written\nin Zig but we do a lot of platform-native things:\n\n- The macOS app is a true SwiftUI-based application with all the things you\n  would expect such as real windowing, menu bars, a settings GUI, etc.\n- macOS uses a true Metal renderer with CoreText for font discovery.\n- The Linux app is built with GTK.\n\nThere are more improvements to be made. The macOS settings window is still\na work-in-progress. Similar improvements will follow with Linux.\n\n#### Cross-platform `libghostty` for Embeddable Terminals\n\nIn addition to being a standalone terminal emulator, Ghostty is a\nC-compatible library for embedding a fast, feature-rich terminal emulator\nin any 3rd party project. This library is called `libghostty`.\n\nDue to the scope of this project, we're breaking libghostty down into\nseparate actually libraries, starting with `libghostty-vt`. The goal of\nthis project is to focus on parsing terminal sequences and maintaining\nterminal state. This is covered in more detail in this\n[blog post](https://mitchellh.com/writing/libghostty-is-coming).\n\n`libghostty-vt` is already available and usable today for Zig and C and\nis compatible for macOS, Linux, Windows, and WebAssembly. At the time of\nwriting this, the API isn't stable yet and we haven't tagged an official\nrelease, but the core logic is well proven (since Ghostty uses it) and\nwe're working hard on it now.\n\nThe ultimate goal is not hypothetical! The macOS app is a `libghostty` consumer.\nThe macOS app is a native Swift app developed in Xcode and `main()` is\nwithin Swift. The Swift app links to `libghostty` and uses the C API to\nrender terminals.\n\n## Crash Reports\n\nGhostty has a built-in crash reporter that will generate and save crash\nreports to disk. The crash reports are saved to the `$XDG_STATE_HOME/ghostty/crash`\ndirectory. If `$XDG_STATE_HOME` is not set, the default is `~/.local/state`.\n**Crash reports are _not_ automatically sent anywhere off your machine.**\n\nCrash reports are only generated the next time Ghostty is started after a\ncrash. If Ghostty crashes and you want to generate a crash report, you must\nrestart Ghostty at least once. You should see a message in the log that a\ncrash report was generated.\n\n\u003e [!NOTE]\n\u003e\n\u003e Use the `ghostty +crash-report` CLI command to get a list of available crash\n\u003e reports. A future version of Ghostty will make the contents of the crash\n\u003e reports more easily viewable through the CLI and GUI.\n\nCrash reports end in the `.ghosttycrash` extension. The crash reports are in\n[Sentry envelope format](https://develop.sentry.dev/sdk/envelopes/). You can\nupload these to your own Sentry account to view their contents, but the format\nis also publicly documented so any other available tools can also be used.\nThe `ghostty +crash-report` CLI command can be used to list any crash reports.\nA future version of Ghostty will show you the contents of the crash report\ndirectly in the terminal.\n\nTo send the crash report to the Ghostty project, you can use the following\nCLI command using the [Sentry CLI](https://docs.sentry.io/cli/installation/):\n\n```shell-session\nSENTRY_DSN=https://e914ee84fd895c4fe324afa3e53dac76@o4507352570920960.ingest.us.sentry.io/4507850923638784 sentry-cli send-envelope --raw \u003cpath to ghostty crash\u003e\n```\n\n\u003e [!WARNING]\n\u003e\n\u003e The crash report can contain sensitive information. The report doesn't\n\u003e purposely contain sensitive information, but it does contain the full\n\u003e stack memory of each thread at the time of the crash. This information\n\u003e is used to rebuild the stack trace but can also contain sensitive data\n\u003e depending on when the crash occurred.\n","funding_links":[],"categories":["Zig","Applications","Desktop/Web/System Agnostic Applications","开发者工具","终端","Terminal Apps","Terminal","Fundamentals","Linux","Table of Contents","Command Line Tools","未分类","others","Tools"],"sub_categories":["macOS Specific ","Terminal","命令行应用","资源传输下载","Writing","Emulator","Utility","Terminal Emulator","Other","Stat"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostty-org%2Fghostty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fghostty-org%2Fghostty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostty-org%2Fghostty/lists"}