{"id":50960607,"url":"https://github.com/aaronsun0811-dot/clink","last_synced_at":"2026-06-18T13:32:37.800Z","repository":{"id":361058101,"uuid":"1252912106","full_name":"aaronsun0811-dot/clink","owner":"aaronsun0811-dot","description":"Lightweight terminal for running Claude Code, Codex and Grok CLIs side by side (Tauri + xterm.js)","archived":false,"fork":false,"pushed_at":"2026-05-29T02:54:52.000Z","size":556,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-29T04:13:10.177Z","etag":null,"topics":["claude-code","codex","grok","macos","rust","tauri","terminal","xterm"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/aaronsun0811-dot.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-29T01:56:01.000Z","updated_at":"2026-05-29T02:54:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/aaronsun0811-dot/clink","commit_stats":null,"previous_names":["aaronsun0811-dot/clink"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/aaronsun0811-dot/clink","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsun0811-dot%2Fclink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsun0811-dot%2Fclink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsun0811-dot%2Fclink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsun0811-dot%2Fclink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aaronsun0811-dot","download_url":"https://codeload.github.com/aaronsun0811-dot/clink/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronsun0811-dot%2Fclink/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34493361,"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-18T02:00:06.871Z","response_time":128,"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":["claude-code","codex","grok","macos","rust","tauri","terminal","xterm"],"created_at":"2026-06-18T13:32:36.812Z","updated_at":"2026-06-18T13:32:37.772Z","avatar_url":"https://github.com/aaronsun0811-dot.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"English · [简体中文](README.zh.md)\n\n# clink\n\nA lightweight desktop terminal for running the Claude Code, Codex, and Grok CLIs side by side. Built on Tauri (Rust + the system webview) and xterm.js, so there is no bundled Chromium and the app stays small (~6 MB installed).\n\nclink is just a thin shell around the real CLIs: it runs each one in its own PTY, so every skill, plugin, MCP server, and slash command those tools support works unchanged.\n\n![clink: three columns and the skills panel](docs/screenshot.png)\n\n## Download\n\nGrab the latest `.app` from [Releases](https://github.com/aaronsun0811-dot/clink/releases).\n\nThe build is for Apple Silicon (arm64) and is not code-signed, so the first launch needs one of:\n\n- Right-click `clink.app` → Open → Open, or\n- Clear the download quarantine: `xattr -dr com.apple.quarantine /Applications/clink.app`\n\nFor Intel Macs, or if you prefer, build from source (below).\n\n## Build from source\n\nRequires Node, the Rust toolchain, and the `claude` / `codex` / `grok` CLIs installed on your `PATH`.\n\n```bash\ngit clone https://github.com/aaronsun0811-dot/clink\ncd clink\nnpm install        # first time\nnpm run tauri dev  # dev mode, opens the window\n```\n\nRun it from your own terminal app: a GUI process launched from a non-interactive background process has no window session and exits immediately.\n\nPackage a release build:\n\n```bash\nnpm run tauri build\n```\n\n## Features\n\n- Three CLIs: launch Claude / Codex / Grok in any pane, each in its own PTY.\n- Columns and tabs: up to 3 resizable columns (drag the divider), unlimited tabs per column (+ to add, ✕ to close). Switching tabs is instant, with no flicker.\n- Resume past sessions: the History panel lists prior conversations from all three tools, filterable by title or directory; click one to resume it in its original working directory. Sessions can be pinned or deleted (delete removes the files from disk, with confirmation).\n- Skills panel: scans `~/.claude`, `~/.codex/skills`, and `~/.grok/skills`, grouped by tool; click a skill to insert its `/name` into the matching pane.\n- Enable / disable skills: toggle any user skill with one click. Disabling moves its folder to `~/.\u003ctool\u003e/skills-disabled/` and enabling moves it back, so it is reversible and loses nothing.\n- Import skills: pick a target tool, then enter a path or drop a folder onto the window to copy a `SKILL.md` folder into that tool's `skills/`.\n- New file / folder, with a native folder picker for the directory.\n- Open the current working directory in Finder.\n- Bilingual UI: a 中/EN toolbar button switches language; the choice is saved locally.\n\n## Where it reads from\n\n- Claude sessions: `~/.claude/projects/\u003cdir\u003e/\u003cid\u003e.jsonl`\n- Codex sessions: `~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl`, indexed in `~/.codex/session_index.jsonl`\n- Grok sessions: `~/.grok/sessions/\u003cencoded-dir\u003e/\u003cid\u003e/chat_history.jsonl`\n- Skills: each tool's `skills/` (and the `skills-disabled/` area), plus `plugins/` for Claude\n\nPTY output is streamed over a Tauri binary Channel (raw bytes, not JSON), and terminals render with the xterm.js WebGL renderer.\n\n## Known limitation\n\nEach terminal uses one WebGL context, and browsers cap the number of simultaneous WebGL contexts (around 16). With a very large number of tabs open, an individual terminal may lose its WebGL context and fall back to the default DOM renderer (handled via `onContextLoss`, so it never crashes, that one terminal just repaints a little slower). Normal use stays well under that limit.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronsun0811-dot%2Fclink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaronsun0811-dot%2Fclink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronsun0811-dot%2Fclink/lists"}