Chisle
코딩 에이전트 플러그인, 20개 실시간 작업에서 기본 모델 52% 활용, 간결한 페르소나와 출력 압축 제공
Ghostty for macOS with an in-window Workspace/Tab/Pane hierarchy in a sidebar. Unofficial fork, not affiliated with Ghostty (MIT, upstream notice retained)
README 전체를 불러오는 중입니다.
README 전문 보기 ↗English | 한국어
A macOS fork of Ghostty that replaces native window tabs with an in-window Workspace → Tab → Pane hierarchy, driven from a left sidebar.
Upstream gives every tab its own NSWindow inside an NSWindowTabGroup. That
is the right default for a terminal, but it makes a set of related shells a
property of the window manager rather than of the app: there is no grouping
above a tab, the group is invisible when the window is not frontmost, and
anything that wants to reason about "the session I was working in" has to go
through AppKit.
Chostty keeps one physical window and owns the hierarchy itself. Workspaces
group tabs, tabs own a split tree of panes, and the sidebar shows all of it at
once. AppKit tabbing is not hidden or worked around — it is removed, and
macos/scripts/native-tab-audit.sh fails the build if any of it comes back.
Everything below the window model is stock Ghostty: the same renderer, the same config file, the same terminfo, the same shell integration.
Download the DMG from Releases and drag Chostty to Applications. Releases are signed with a Developer ID and notarized, so they open without extra steps. Universal binary, macOS 13 and later.
Chostty updates itself through Sparkle, against this repository's signed
appcast and never upstream's. Set auto-update = off to stop automatic checks,
or auto-update = download to fetch updates in the background. Installs of
0.2.12 or older have no updater and need one manual upgrade.
Chostty's version numbers are its own. 1.0.0 is the first stable Chostty
release, not a build of Ghostty 1.0; the upstream revision it carries is
whatever scripts/upstream-sync.sh reports as the merge base.
0.2.16 changed the bundle identifier from com.chostty.app to
kr.co.devch.chostty and replaced the inherited Ghostty icon with Chostty's
own. On first launch the app copies the old preferences and saved session
across, leaving the originals in place. macOS ties privacy permissions —
Accessibility, Automation, notifications, Full Disk Access — to the bundle
identifier, so grant them again when prompted.
⌘B toggles the sidebar, or use the buttons next to the traffic lights — the
toggle, + for a new workspace, and the workspace actions menu. ⌘N makes a
workspace, ⌘T a tab inside the current one, ⌘⇧N a separate physical window.
Right-click a workspace, a tab, or empty sidebar space for the rest. The full
chord table is in FORK.md.
Configuration is unchanged from Ghostty — ~/.config/ghostty/config, the same
keybind and theme syntax, TERM=xterm-ghostty. An existing Ghostty setup works
as-is, and the two can be installed side by side.
Chostty-managed SSH data is separate:
<XDG config home>/chostty/ssh/hosts.conf, with hosts.meta.json alongside.
An unset or empty XDG_CONFIG_HOME uses ~/.config; Finder-launched apps
inherit launchd's environment, not shell profiles.
Configuration can also be edited without touching text: ⌘, (Preferences…)
opens a built-in editor for the common settings — fonts, colors, cursor,
window behavior, keybinds — with inline help per setting. It rewrites only the
lines it changes, so comments, ordering and keys it does not know survive a
save untouched. Save & Apply writes the file and reloads immediately;
Edit in External Editor opens the same file as plain text. Themes are
picked from a previewed gallery, values that come from a theme or an included
file are shown with their source, and All Settings reaches every Ghostty
key. The open_config action and keybinding open this editor too.
Shortcuts this fork reserves are taken only from chords upstream left unbound or
already broken; live Ghostty bindings such as ⌘⌥←/→ and ⌘0 are untouched.
SSH hosts declared in ~/.ssh/config appear in ⌘⇧P as SSH: Connect to
and SSH: Connect to in Split. Chostty reads that file;
it never edits it. Authentication, host-key confirmation, ProxyJump and agent
configuration remain OpenSSH's responsibility.
SSH tabs enable ssh-env by default; no-ssh-env disables it, while an
undetermined configuration source is left unchanged. Quick Terminal does not
offer SSH connections.
The SSH-host manager applies only to normal terminal
windows. Its entry points are Window > Manage SSH Hosts…,
SSH: Manage Hosts… in the command palette, and the SSH popover footer.
Managed hosts alone use ssh -F hosts.conf; ~/.ssh/config, its Includes, and
system configuration remain read-only. Managed hosts can choose Password in
Keychain when they set explicit User, HostName, and Port. Passwords are kept
only in the Keychain, never in SSH files, metadata, snapshots, arguments,
environment, or logs. An alias-only edit keeps its item; changing the endpoint
requires Use for or Replace Password…. Key passphrases
are not stored. Automatic delivery needs explicit Keychain opt-in and works
only with system /usr/bin/ssh; other PATH clients remain manual. The
manual checks still outstanding are listed under Known gaps in FORK.md.
-L/-R/-D tunnels run from
the SSH manager, popover, and command palette; their passphrase, one-time-code,
and unknown-host-key questions open a sheet, and Password in Keychain hosts
answer ssh's password prompt from the Keychain. A changed host key stops the
tunnel.
Needs Xcode 26 (macOS 26 SDK) and Zig 0.17. Nix is not required.
zig build -Demit-macos-app=false -Dsentry=false # GhosttyKit, the Zig core the app links
./macos/build.nu --configuration Release --action build
Verify with the audit gate and the affected test suites:
./macos/scripts/native-tab-audit.sh
xattr -cr macos/build/Debug/Chostty.app
./macos/build.nu --configuration Debug --action test
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗