thurstonsand-pi-paste

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

GhosttyKit

GhosttyKit is a Ghostty companion toolkit for macOS-local terminal control, editor navigation, SSH-bridged commands, and clipboard paste workflows.

What's available:

  • ghosttykitd: the macOS daemon required for Ghostty control commands.
  • gty: a CLI for Ghostty terminal control, SSH bridging, and paste workflows.
  • ghosttykit.nvim: a Neovim plugin for moving between Neovim windows and Ghostty splits.
  • pi-paste: a Pi extension for pasting local clipboard text and files, including from SSH sessions opened with gty ssh.
  • SDKs for building integrations:
    • Go: sdk/go/
    • TypeScript: sdk/ts/
    • Lua: sdk/lua/

Status: stable. The Go gty CLI, Swift daemon, Go/TypeScript/Lua SDKs, SSH bridge flow, Homebrew packaging, Neovim plugin, Pi paste extension, and release workflow are present.

Install

GhosttyKit is distributed for macOS through the shared thurstonsand/homebrew-tap Homebrew tap.

Stable releases follow v* tags:

brew install thurstonsand/tap/ghosttykit

Nightly builds track recent commits on main:

brew install thurstonsand/tap/ghosttykit-nightly

Start Ghostty before starting the daemon so macOS can ask for Automation permission on first start:

open -a Ghostty
brew services start thurstonsand/tap/ghosttykit
gty doctor

You should get an Automation prompt from macOS. Grant access so GhosttyKitD can control Ghostty. Afterward, gty doctor should report:

> gty doctor
daemon: ok - socket reachable
automation: ok - Ghostty accepted Apple Events

To stop the daemon:

brew services stop thurstonsand/tap/ghosttykit

Ghostty config for Neovim navigation

Add this fragment to your Ghostty config to make Ctrl-h/j/k/l move between Ghostty splits in shells, while passing those keys through to Neovim when ghosttykit.nvim activates the nvim key table:

# ctrl-hjkl navigates Ghostty splits unless this surface is in the nvim key table
keybind = ctrl+h=goto_split:left
keybind = ctrl+j=goto_split:down
keybind = ctrl+k=goto_split:up
keybind = ctrl+l=goto_split:right
keybind = nvim/
keybind = nvim/ctrl+h=text:\x08
keybind = nvim/ctrl+j=text:\x0a
keybind = nvim/ctrl+k=text:\x0b
keybind = nvim/ctrl+l=text:\x0c

The key table must be named nvim. That name is shared by the Ghostty config and the Neovim plugin. GhosttyKit does not edit your Ghostty config automatically.

Development

Project-local tool versions live in mise.toml.

mise install    # install project tools
just build      # build binaries
just check      # format, lint, typecheck, test, build, and validate packaging/CI config
just --list

Component recipes are available as *-go, *-swift, *-ts, *-pi, and *-nvim variants.