Codync
免费开源的 1:1 Grok Bot 与 Muse 替代方案。可在 iPhone、Mac 或 Linux 桌面上将 Claude 代码、Codex、Cursor 以及 40 多个编码代理作为持久机器人使用。支持群组聊天、线程、应用。
AI 翻译
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A read-only viewer for the work of your coding agents.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗kijk is an agent-native code viewer: a small, fast, read-only view of the work of your running coding agents.
Agent-native means that kijk starts from your agents, not from projects. It knows which agents run on your machine and lists them. One click shows the folder of an agent: the file tree, the code, the diff, and the git state.
kijk is for people who run many agents at the same time. A full IDE is too heavy to keep 20 folders open. kijk is one small binary that you keep open all day, next to your terminals. You switch between agents in a second, and you can review and commit their work without an IDE.
The name is Dutch for "look".
| Agent | Status |
|---|---|
| Claude Code | Supported |
| Codex | Supported, version 0.157 or newer, started as codex in a terminal |
| Pi | Planned |
kijk asks the Codex app server, which codex 0.157 and newer start by themselves. kijk only reads
from it. It never starts Codex or the app server, and never answers an approval.
thread_unload_delay_secs in your Codex config, it is that long.codex exec, Codex before 0.157, or a codex that could not reach its app
server and runs its own. It probably does not see the Codex desktop app or the IDE extensions.You can also use kijk as a light viewer for folders you pick, with or without agents.
kijk ~/code/api ~/notes
kijk <folder> adds the folder to the Folders list and opens it in the kijk window. kijk folders shows the Folders list./, and a folder in a git repository that starts at one of them. Folders are on the local machine only..adoc, .asciidoc) show rendered the same way. kijk renders the common parts: sections, lists, tables, code, images, admonitions, cross references and attributes. Other syntax shows as plain text. include:: shows the included file from the same folder in its place, and the view redraws when that file changes.mermaid blocks in markdown, [mermaid] blocks in AsciiDoc, and .mmd and .mermaid files, with a switch to the source. They follow the light or dark theme. A diagram with an error shows its text and the error.plantuml and puml blocks in markdown and AsciiDoc, and .puml, .plantuml, .pu and .wsd files, with a switch to the source. They keep their own colors, on a light card. !include reads files from the same folder, and a diagram redraws when an included file changes..excalidraw files show as pictures, with a switch to the source. They follow the light or dark theme.+N −N line counts. Click a file to see its diff, or review with the arrow keys and Space to stage.git, so your config, credentials and hooks apply.If you use the gh (GitHub) or glab (GitLab) command and are logged in, the Git tab shows the pull request or merge request of the branch. It shows the state, the checks or pipeline, and the review.
kijk asks gh and glab. It never stores a token itself. The PRs tab shows more of them, and the reviews you write there go through the same commands: see Review a pull request.
The PRs tab shows your own branch the way a reviewer will see it, before you push. It shows when the branch has changes against its pull request target or the main line, and in every repo on GitHub or GitLab. Its tooltip says PRs on GitHub, MRs on GitLab, and Branch with no forge.
gh or glab, the tab opens on it at once.The PRs tab lists the open pull requests of the repo: This branch, Review requested, Yours, and All open, with a search box for a number, title, author or branch. The tab's icon counts the pull requests that wait for your review.
kijk https://github.com/acme/shop/pull/477 opens that pull request in a clone of the repo.
kijk looks for the clone in the folder you run the command in and the folders above it, your
saved folders, its own clones, the folders next to your saved folders, and common places such
as ~/code/shop and ~/go/src/github.com/acme/shop. Then it looks in the folders of your
agents and the folders next to them.gh or glab, with your own login. The clone
is a normal, full clone in kijk's cache folder: ~/Library/Caches/kijk/clones on macOS,
~/.cache/kijk/clones on Linux, %LocalAppData%\kijk\clones on Windows. The terminal shows
the progress. kijk adds the clone to the Folders list and opens the pull request. The next link
to the same repo uses this clone. Ctrl+C stops the clone and leaves nothing behind.Write a review. Your comments, replies and verdict go into your review on GitHub or GitLab. Nothing with text goes out before you press Post review in the check that Submit review… opens.
Squash and merge. The Overview has a box under the checks. Squash and merge… in it puts all the commits of the pull request onto the target branch as one commit.
To diff a pull request, kijk fetches its head commit into your repo as refs/kijk/pr/<number>,
with no checkout. When the target branch on GitHub has commits you have not fetched, kijk puts
them in refs/kijk/base/<number>, so your origin/main stays as it was. These refs do not show in
git branch. kijk fetches again only when the pull request moved, and deletes the refs when it
closes.
kijk watches the open folder. The tree, the Git tab and the open file update within a second after a change.
kijk opens in an app window, without an address bar or browser tabs. This works with Chrome, Edge, Brave, Chromium and Vivaldi. With other browsers, kijk opens a normal tab.kijk uses the IntelliJ default keys.
| Action | macOS | Windows and Linux |
|---|---|---|
| Switch between the Agents and Folders lists | ⌃⌥0 | Ctrl+Alt+0 |
| Open row 1 to 9 of the list that shows | ⌃⌥1 … ⌃⌥9 | Ctrl+Alt+1 … Ctrl+Alt+9 |
| Go to file | ⇧⌘O | Ctrl+Shift+N |
| Recent files | ⌘E | Ctrl+E |
| Find in file | ⌘F | Ctrl+F |
| Next and previous match | ⌘G, ⇧⌘G | F3, Shift+F3 |
| Go to line | ⌘L | Ctrl+G |
| Next and previous change | F7, ⇧F7 | F7, Shift+F7 |
| Back and forward | ⌘[, ⌘] | Ctrl+Alt+←, Ctrl+Alt+→ |
| Files tab | ⌘1 | Alt+1 |
| Git tab | ⌘0 | Alt+0 |
| PRs tab | ⌘2 | Alt+2 |
| Note for the agent, or a comment in a pull request, on the current line | ⌘⌥N | Ctrl+Alt+N |
| Add the note or the comment | ⌘Enter | Ctrl+Enter |
| Next and previous thread or note | ⌥↓, ⌥↑ | Alt+↓, Alt+↑ |
| Ask GitHub or GitLab again (PRs tab) | ⌘⌥Y | Ctrl+Alt+Y |
| Back to the list of pull requests | ⌥← | Alt+← |
| Mark the file viewed, or clear the mark (pull request) | V | V |
| Commit | ⌘K | Ctrl+K |
| Push, or Force push after a rebase (asks first) | ⇧⌘K | Ctrl+Shift+K |
| Close tab | ⌘W | Ctrl+F4 |
| Remove the focused folder (Folders list) | Delete or Backspace | Delete or Backspace |
| Undo the removal | ⌘Z | Ctrl+Z |
A normal browser tab keeps some of these keys for itself. For those actions, kijk also has a second key. The tooltip of the action shows the key that works in your window.
The Ctrl+Alt keys of the lists do nothing while you type in a text field. On some keyboards, AltGr sends Ctrl+Alt, so AltGr and a digit still type there.
~/.claude, or in CLAUDE_CONFIG_DIR when you set it. It finds Codex agents through the app server socket in ~/.codex, or in CODEX_HOME when you set it.git. Without it, kijk shows the files but no Git tab.gh or glab, for the pull request line and the PRs tab, and for kijk <PR link>
to clone a repo.kijk runs on macOS, Linux and Windows.
kijk can also show the agents that run on another machine, such as a VM without a screen. They appear in the same Agents list, under a header per machine. You can read their files and diffs, and stage, commit, push and fetch there.
Save a machine with an alias from ~/.ssh/config or user@host:
kijk machine add azvm
kijk tests the SSH login first. When the login needs a passphrase or a password, kijk offers to
log in in the terminal, and ssh asks for it. kijk never sees it.
| Command | What it does |
|---|---|
kijk machine add <ssh-target> | Save a machine |
kijk machine login <machine> | Log in again, for example when a key with a passphrase is not in ssh-agent |
kijk machine list | Show the saved machines and their states |
kijk machine disable <machine> | Stop connecting, for example while the VM is shut down |
kijk machine enable <machine> | Connect again |
kijk machine remove <machine> | Forget a machine |
How it works:
ssh, with your SSH config, keys, ssh-agent and known hosts. It opens no
port on either machine.kijk serve). When the
remote machine has no kijk of the same version, kijk copies its own release there, into
~/.local/share/kijk/remote/. Adding the machine allows this. kijk does not change a kijk that
you installed there yourself.Requirements:
AllowTcpForwarding on in the remote SSH server. It is on by
default.git, and optionally gh or glab for the pull request line and the
PRs tab. kijk asks them, and fetches pull requests, on the remote machine.~/.codex on the remote machine. When Codex uses another folder
there, set CODEX_HOME where a non-interactive SSH login reads it: ~/.zshenv for zsh,
~/.bashrc for bash.curl -fsSL https://github.com/kijk-dev/kijk/releases/latest/download/install.sh | sh
The script downloads the newest release for your system and makes sure that it matches checksums.txt.
It puts kijk in the first of ~/.local/bin, ~/bin and /usr/local/bin that is on your PATH and that you can write to.
If none of these folders is on your PATH, the script uses ~/.local/bin and shows the command that adds it.
The script does not use sudo and does not change your shell files.
To use a different folder, set KIJK_INSTALL_DIR:
curl -fsSL https://github.com/kijk-dev/kijk/releases/latest/download/install.sh | KIJK_INSTALL_DIR="$HOME/tools" sh
Run this command in PowerShell:
irm https://github.com/kijk-dev/kijk/releases/latest/download/install.ps1 | iex
The script puts kijk.exe in %LOCALAPPDATA%\Programs\kijk and adds that folder to your user PATH.
It does not need administrator rights.
Open a new terminal after the install, so that the terminal finds kijk.
go install github.com/kijk-dev/kijk@latest
This needs Go 1.27 or later.
On macOS, install the Xcode command line tools first (xcode-select --install).
Without a C compiler, kijk watches files with a slower method that opens one file handle per file.
You can also download a binary from the Releases page.
The binaries are not signed, so macOS and Windows show a warning for a file that comes from a browser.
The install scripts and kijk update do not get this warning.
xattr -d com.apple.quarantine kijk once, in the folder of the file.kijk
kijk starts a server on 127.0.0.1:7717 and opens its window.
If kijk already runs, the command opens the window. When the window is open already, the command says so and opens no second one.
| Command or option | What it does |
|---|---|
-port 7800 | Uses another port. |
-no-open | Does not open a window. |
-no-update-check | Does not look for a new version. |
kijk <folder>… | Adds the folders to the Folders list and opens the last one in the kijk window. |
kijk <PR link> | Opens the pull request in the kijk window, in a clone of its repo. With no clone on this machine, clones the repo with gh or glab first, from github.com, gitlab.com or a host the tool is logged in to. |
kijk folders | Shows the Folders list in the kijk window. |
kijk version | Shows the version. |
kijk update | Installs the newest version. |
folders, update, version, machine and serve are commands. To add a folder with one of
these names, give it as a path, such as kijk ./update.
When a new version is out, the status bar at the bottom of the window shows Update. Click Update to install the new version. Then click Restart. kijk restarts in the same terminal, and the window reloads. On Windows, there is no Restart button. Stop kijk with Ctrl+C and start it again.
You can also update from a terminal:
kijk update
To install the newest release again, run the install script again.
kijk never installs anything by itself. A few seconds after it starts, and then once a day, it asks GitHub for the number of the newest release. This request sends no data about you or your folders. GitHub sees your IP address, as it does for every download. If the request fails, kijk shows nothing and tries again later.
To turn off the check, set this environment variable:
export KIJK_NO_UPDATE_CHECK=1
You can also start kijk with -no-update-check. kijk update and the Update button still work.
kijk sends anonymous usage data, so we know how many people use it and on which systems.
It never sends your code, your folder or file names, or anything about you.
It sends the number of folders in the Folders list. On a day when kijk looked for agents, it
also sends the number of agents on your machine, in total and per agent type, and how many remote
machines you saved and how many agents run on them. The count per agent type is
<type>_agents for each type kijk shows, such as claude_agents for Claude Code and
codex_agents for Codex. It never sends their names or addresses. It sends how many times you
used Copy for agent and how many reviews you submitted since its last report, never the notes
or the reviews. kijk on a remote machine sends nothing.
To turn it off, set KIJK_NO_TELEMETRY=1 or DO_NOT_TRACK=1, or start kijk with -no-telemetry.
kijk binary. Run command -v kijk (macOS, Linux) or where.exe kijk (Windows) to find it.| System | Folders |
|---|---|
| macOS | ~/.config/kijk (or $XDG_CONFIG_HOME/kijk) and ~/Library/Application Support/kijk |
| Linux | ~/.config/kijk (or $XDG_CONFIG_HOME/kijk) |
| Windows | %AppData%\kijk |
On Windows, also delete %LOCALAPPDATA%\Programs\kijk from your user PATH.
You need Go 1.27 or later. On macOS, you also need the Xcode command line tools.
git clone https://github.com/kijk-dev/kijk.git
cd kijk
go build .
./kijk
A build from source shows its version as dev, followed by the commit. It does not look for updates, and kijk update does not replace it.
To run the tests:
go test -short ./... # fast
go test ./... # also builds kijk, runs the install scripts and the browser tests
go test -run TestBrowser . # only the browser tests
The browser tests start kijk with fake agents and use it in a headless Chrome, Edge, Brave,
Chromium or Vivaldi, the first one installed. Set KIJK_E2E_BROWSER to the path of another
browser. They run on macOS and Linux. A failed test saves a screenshot, the page, the console and
kijk's log, and says where. With KIJK_E2E_SHOTS=1 they also save the main views in light,
dark and a narrow window.
kijk is released under the MIT License.
ghglabgh auth login --hostname code.acme.dev