{"id":47677404,"url":"https://github.com/buftio/tairi","last_synced_at":"2026-04-05T15:00:58.610Z","repository":{"id":346408928,"uuid":"1181235369","full_name":"buftio/tairi","owner":"buftio","description":"A scrollable tiling workspace for terminal sessions","archived":false,"fork":false,"pushed_at":"2026-04-01T19:29:21.000Z","size":43508,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T01:40:51.187Z","etag":null,"topics":["cli","ghostty","niri","terminal","tui"],"latest_commit_sha":null,"homepage":"","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/buftio.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-13T22:32:14.000Z","updated_at":"2026-04-02T10:47:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/buftio/tairi","commit_stats":null,"previous_names":["buftio/tairi"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/buftio/tairi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buftio%2Ftairi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buftio%2Ftairi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buftio%2Ftairi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buftio%2Ftairi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buftio","download_url":"https://codeload.github.com/buftio/tairi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buftio%2Ftairi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31439442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T13:13:19.330Z","status":"ssl_error","status_checked_at":"2026-04-05T13:13:17.778Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cli","ghostty","niri","terminal","tui"],"created_at":"2026-04-02T13:36:55.435Z","updated_at":"2026-04-05T15:00:58.605Z","avatar_url":"https://github.com/buftio.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tairi\n\nA scrollable, spatial terminal workspace.\n\nInspired by scrollable tiling window managers like niri\n\n- sessions don't shrink\n- everything stays visible\n- built for multi-project / multi-process workflows\n\n## Install\n\nInstall the published app from Homebrew:\n\n```sh\nbrew tap buftio/tap\nbrew install --cask tairi\n```\n\n## UI\n\n`strip` is the main horizontal workspace row of tiles:\n\n![Strip view](docs/screenshots/strip1.gif)\n\nNavigate with trackpad swipes or `⌥⌘` + arrow keys:\n\n- `⌥⌘←` and `⌥⌘→` move between tiles\n- `⌥⌘↑` and `⌥⌘↓` move between strips\n\n`zoom-out` pulls the current window into an overview so you can scan strips and tiles at once:\n\n![Zoomed-out overview](docs/screenshots/zoom-out.png)\n\nPinch out to enter zoom-out overview.\n\nFor a quick tour of the rest of the UI, see [docs/ui-walkthrough.md](docs/ui-walkthrough.md).\n\n## Who is this for?\n\nDevelopers running multiple services, agents, or logs who want a spatial, always-visible workflow.\n\n## Why not tmux?\n\ntmux forces you to divide a fixed screen into smaller panes.\n\ntairi removes that constraint entirely. Your workspace expands horizontally instead.\n\n## Prerequisites\n\nFor running Tairi from source:\n\n- macOS 14 or newer\n- Xcode with Swift 6 toolchains available on the command line\n- [just](https://github.com/casey/just)\n- `trash`\n\nOptional:\n\n- `xcodegen` for UI tests\n- an Apple Development signing identity for the UI test runner\n\n## Quick Start\n\nFrom a fresh clone:\n\n```sh\njust dev\n```\n\n`just dev` automatically downloads the pinned Ghostty runtime declared in\n[Vendor/ghostty-runtime.env](Vendor/ghostty-runtime.env) into the local cache\nunder `.local/vendor/Ghostty/...`.\n\nExpected result:\n\n- the app launches\n- one window opens\n- the first terminal tile is backed by the vendored Ghostty runtime\n\nCustom startup strips can be passed through to the dev app:\n\n```sh\njust dev --strip 1,1,1 --strip 0.5,1\n```\n\n## Packaging\n\nBuild a distributable bundle:\n\n```sh\njust bundle\n```\n\nBuild and install into your user Applications folder:\n\n```sh\njust install\n```\n\n`just install` updates the existing installed copy if one already exists.\nIt also ensures the manifest-pinned Ghostty runtime is cached before building.\n\nThe bundled runtime is baked in app.\nDevelopment uses the cached runtime under `.local/vendor/Ghostty/...`.\n\n## Contributing\n\nFor day-to-day development, the main loop is:\n\n```sh\njust dev\n```\n\nGate:\n\n```sh\njust format \u0026\u0026 just lint \u0026\u0026 swift test\n```\n\nUI tests currently require extra local setup:\n\n- `xcodegen` installed\n- a working Apple Development signing identity\n\nRun them with:\n\n```sh\n./scripts/test-ui.sh\n```\n\nAuxiliary diagnostics and CI helper scripts live under `scripts/misc/`.\n\nCommon first-run issues:\n\n- the pinned Ghostty download may fail if it cannot be fetched\n- `just install` expects `trash` to be installed\n- UI tests fail without a local signing identity\n\n## License\n\nTairi is available under the MIT license. See [LICENSE](LICENSE).\n\n## Third-Party Software\n\nTairi vendors and redistributes Ghostty as its terminal runtime, including\nSparkle as bundled inside the copied Ghostty app runtime layout.\n\nSee [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for details.\nBuilt app bundles also include the notice set under\n`Contents/Resources/ThirdPartyNotices/`.\n\n## Docs\n\n- [Ghostty setup](docs/ghostty.md)\n- [Logs](docs/logs.md)\n- [Crash diagnostics](docs/crash-diagnostics.md)\n- [Release packaging and distribution](docs/release.md)\n- [UI testing](docs/ui-testing.md)\n- [UI walkthrough](docs/ui-walkthrough.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuftio%2Ftairi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuftio%2Ftairi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuftio%2Ftairi/lists"}