WezTermのフォーク版のKakuを入れてみた

はじめに

雑な​ログでも​いいので、​試した​ツールは​ブログに​残していこうと​思う

kakuと​いう​ターミナルエミュレーターを​知りました。​mac osでしか​動かない​weztermの​フォーク版で​zero configで​動く​weztermだそうだ。

と​いう​ことで​インストールしてみた。

インストール

自分は​githubの​リリースに​ある​dmgから​インストールしてみた

startshipと​zoxideなどは​if installedと​書いて​あったので、​既に​入っていた​場合に​kakuの​設定と​連携する​的な​意味だと​思って​Enterキーから​セットアップを​開始した​ところ、​homebrew経由で​starshipなどが​入ってきた。。。。。。
Optional って​必須じゃないけど​入れとくね!の​ほうなの​????
image

image

image

以下は​エンターを​押してから​止まるまでの​全ログです。​Optionalって​なんだろうな。。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  _  __      _
 | |/ /     | |
 | ' / __ _ | | __ _   _
 |  < / _` || |/ /| | | |
 | . \ (_| ||   < | |_| |
 |_|\_\__,_||_|\_\ \__,_|

Welcome to Kaku!
A fast, out-of-the-box terminal built for AI coding.
--------------------------------------------------------
Would you like to install Kaku's enhanced shell features?
This includes:
  - Starship prompt (if installed)
  - Zoxide integration (if installed)
  - OSC 7/133/1337 sequences for AI fix hooks
  - Kaku Yazi theme sync
  - Optional CLI tools via Homebrew: Starship, Delta, Lazygit, Yazi

Shell config model (fish):
  - Kaku writes managed config to ~/.config/kaku/fish/kaku.fish
  - ~/.config/fish/conf.d/kaku.fish sources it automatically
  - You can roll back anytime with: kaku reset
--------------------------------------------------------

Set up Kaku now? Press Enter to continue, type n to skip:

  ✓ Config      Installed kaku terminfo (~/.terminfo)
Setting up Kaku Fish Shell Environment
  ✓ Config      Initialized starship.toml (~/.config/starship.toml)
  ✓ Config      Initialized yazi.toml (~/.config/yazi/yazi.toml)
  ✓ Config      Initialized yazi keymap (~/.config/yazi/keymap.toml)
  ✓ Config      Refreshed Kaku yazi flavors (dark + light)
  ✓ Config      Initialized yazi theme (managed Kaku flavor: kaku-dark)
  ✓ Config      Installed yazi wrapper (theme sync before launch)
  ✓ Script      Generated managed tmux integration
  ✓ Integrate   Successfully patched .tmux.conf
  ✓ Script      Generated kaku.fish init script
  ✓ Integrate   Installed ~/.config/fish/conf.d/kaku.fish

Kaku Fish setup complete!

Restart fish or run: source ~/.config/fish/conf.d/kaku.fish
Roll back anytime with: kaku reset
Keeping existing user config: /Users/wagomu/.config/kaku/kaku.lua


Installing optional CLI tools automatically...
Installing: starship git-delta lazygit yazi zoxide
==> Auto-updating Homebrew...
Adjust how often this is run with `$HOMEBREW_AUTO_UPDATE_SECS` or disable with
`$HOMEBREW_NO_AUTO_UPDATE=1`. Hide these hints with `$HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> Auto-updated Homebrew!
Updated 4 taps (steipete/tap, sst/tap, homebrew/core and homebrew/cask).
==> New Formulae
apache-arrow-adbc-glib: GLib bindings for Apache Arrow ADBC
dart-sass: Reference implementation of Sass, written in Dart
dartaotruntime: Command-line tool for running AOT-compiled snapshots of Dart code
git-format-staged: Git command to transform staged files using a formatting command
graalvm: JDK distribution with Graal compiler and Native Image
libkiwix: Common code base for all Kiwix ports
libpathrs: C-friendly API to make path resolution safer on Linux
merve: C++ lexer for extracting named exports from CommonJS modules
nbytes: Library of byte handling functions extracted from Node.js core
overturemaps: Python tools for interacting with Overture Maps data
rustpython: Python Interpreter written in Rust
rvvm: RISC-V Virtual Machine
sarif-fmt: Pretty print SARIF files to easy human readable output
sheets: Terminal based spreadsheet tool
skip: Tool for building Swift apps for Android
t2sz: Compress a file into a seekable zstd with per-file seeking for tar archives
tini: Tiny but valid init for containers
yelp-xsl: Document transformations from Yelp
==> New Casks
appgridmac: AI-assisted Launchpad replacement
backblaze-restore: Computer backup restore client
cadran: Desktop clock rendered behind your icons
clearance: Markdown viewer and editor
craft-agents: AI assistant for connecting and working across data sources
font-ioskeley-mono
font-strichpunkt-sans
happ: Platform for building proxies to bypass network restrictions
hive-app: AI agent orchestrator for parallel coding across projects
intiface-central: Frontend application for the Buttplug sex toy control library
plamo-translate: Translator focused on Japanese
radial: Gesture-based launcher for apps, text snippets, and scripts
rayon: AI-powered drawing for interior designers and architects
remanager: Desktop app for managing mods on reMarkable tablets
super: Analytics database that fuses structured and semi-structured data
vibe-island: Dynamic island AI agent utility
vibeproxy: Menu bar app for using AI subscriptions with coding tools

You have 54 outdated formulae and 5 outdated casks installed.

==> Fetching downloads for: starship, git-delta, lazygit, yazi and zoxide
✔︎ Bottle Manifest starship (1.24.2)                                            Downloaded    8.3KB/  8.3KB
✔︎ Bottle Manifest lazygit (0.61.0)                                             Downloaded    7.4KB/  7.4KB
✔︎ Bottle Manifest yazi (26.1.22)                                               Downloaded    7.5KB/  7.5KB
✔︎ Bottle Manifest git-delta (0.19.2)                                           Downloaded   12.8KB/ 12.8KB
✔︎ Bottle Manifest zoxide (0.9.9)                                               Downloaded    7.4KB/  7.4KB
✔︎ Bottle Manifest libssh2 (1.11.1_1)                                           Downloaded   12.1KB/ 12.1KB
✔︎ Bottle Manifest openssl@3 (3.6.2)                                            Downloaded   12.0KB/ 12.0KB
✔︎ Bottle Manifest libgit2 (1.9.2_1)                                            Downloaded   13.1KB/ 13.1KB
✔︎ Bottle Manifest oniguruma (6.9.10)                                           Downloaded   10.0KB/ 10.0KB
✔︎ Bottle libssh2 (1.11.1_1)                                                    Downloaded  422.9KB/422.9KB
✔︎ Bottle oniguruma (6.9.10)                                                    Downloaded  458.4KB/458.4KB
✔︎ Bottle zoxide (0.9.9)                                                        Downloaded  468.4KB/468.4KB
✔︎ Bottle libgit2 (1.9.2_1)                                                     Downloaded    1.9MB/  1.9MB
✔︎ Bottle git-delta (0.19.2)                                                    Downloaded    2.9MB/  2.9MB
✔︎ Bottle starship (1.24.2)                                                     Downloaded    3.8MB/  3.8MB
✔︎ Bottle lazygit (0.61.0)                                                      Downloaded    6.1MB/  6.1MB
✔︎ Bottle yazi (26.1.22)                                                        Downloaded    8.9MB/  8.9MB
✔︎ Bottle openssl@3 (3.6.2)                                                     Downloaded   10.9MB/ 10.9MB
==> Pouring starship--1.24.2.arm64_tahoe.bottle.1.tar.gz
🍺  /opt/homebrew/Cellar/starship/1.24.2: 12 files, 8.7MB
==> Running `brew cleanup starship`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> Installing dependencies for git-delta: libssh2, libgit2 and oniguruma
==> Installing git-delta dependency: libssh2
==> Pouring libssh2--1.11.1_1.arm64_tahoe.bottle.tar.gz
🍺  /opt/homebrew/Cellar/libssh2/1.11.1_1: 201 files, 1.3MB
==> Installing git-delta dependency: libgit2
==> Pouring libgit2--1.9.2_1.arm64_tahoe.bottle.1.tar.gz
🍺  /opt/homebrew/Cellar/libgit2/1.9.2_1: 109 files, 5.0MB
==> Installing git-delta dependency: oniguruma
==> Pouring oniguruma--6.9.10.arm64_tahoe.bottle.tar.gz
🍺  /opt/homebrew/Cellar/oniguruma/6.9.10: 15 files, 1.5MB
==> Installing git-delta
==> Pouring git-delta--0.19.2.arm64_tahoe.bottle.tar.gz
🍺  /opt/homebrew/Cellar/git-delta/0.19.2: 12 files, 6.2MB
==> Running `brew cleanup git-delta`...
==> Pouring lazygit--0.61.0.arm64_tahoe.bottle.tar.gz
🍺  /opt/homebrew/Cellar/lazygit/0.61.0: 6 files, 17.7MB
==> Running `brew cleanup lazygit`...
==> Pouring yazi--26.1.22.arm64_tahoe.bottle.tar.gz
🍺  /opt/homebrew/Cellar/yazi/26.1.22: 17 files, 18.7MB
==> Running `brew cleanup yazi`...
==> Pouring zoxide--0.9.9.arm64_tahoe.bottle.tar.gz
🍺  /opt/homebrew/Cellar/zoxide/0.9.9: 18 files, 1MB
==> Running `brew cleanup zoxide`...
  ✓ Tools       Installed missing CLI tools via Homebrew

🎃 Kaku environment is ready! Enjoy coding.
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
~

UI

weztermの​設定が​上書かれて、​おしゃれな​タブに​なった。​ここは​自分の​設定でも​真似させて​もらおう。
image

lazygit

image

Yazi

これが​Yaziと​いう​ものらしい。
始めて​触ったので、​しばらく​試してみます。
image

キーマッピング

ここ に​記載されてます

元文を​全部​貼ると​こんな​感じです

Keybindings

All keybindings use macOS-native modifier keys. Opt = Option/Alt, Ctrl = Control.

Window

ActionShortcut
New windowCmd + N
Close pane / tab / hideCmd + W
Close current tabCmd + Shift + W
Hide applicationCmd + H
Minimize windowCmd + M
Toggle fullscreenCmd + Ctrl + F
QuitCmd + Q
Toggle global windowCmd + Opt + Ctrl + K

Cmd + W is smart: closes the active pane if there are multiple panes, closes the tab if there are multiple tabs or windows, otherwise hides the app.

Tabs

ActionShortcut
New tabCmd + T
Switch to tab 1–9Cmd + 1Cmd + 9
Previous tabCmd + Shift + [
Next tabCmd + Shift + ]
Close tabCmd + Shift + W
Reopen closed tabCmd + Shift + T
Rename tabDouble-click tab title

Panes

ActionShortcut
Split verticalCmd + D
Split horizontalCmd + Shift + D
Toggle split directionCmd + Shift + S
Zoom / unzoom paneCmd + Shift + Enter
Navigate panesCmd + Opt + Arrows
Resize paneCmd + Ctrl + Arrows

Shell Editing

ActionShortcut
Jump word left / rightOpt + Left / Opt + Right
Jump to line start / endCmd + Left / Cmd + Right
Delete to line startCmd + Backspace
Delete wordOpt + Backspace
Newline without executeCmd + Enter or Shift + Enter

Font Size

ActionShortcut
IncreaseCmd + =
DecreaseCmd + -
ResetCmd + 0

Kaku Features

ActionShortcut
Clear screen + scrollbackCmd + K
Open Settings panelCmd + ,
Open AI panelCmd + Shift + A
Apply Kaku Assistant suggestionCmd + Shift + E
Open lazygitCmd + Shift + G
Open yazi file managerCmd + Shift + Y
Browse remote files (SSH)Cmd + Shift + R
Open Doctor panelCtrl + Shift + L

Mouse

ActionTrigger
Copy selection to clipboardRelease left mouse button after selecting
Open linkCmd + Click
Move cursor to clicked columnOpt + Click (same row, shell prompt only)

Custom Keybindings

Add bindings to ~/.config/kaku/kaku.lua by appending to config.keys. Do not assign a new table — this would erase Kaku’s defaults.

123456
-- ~/.config/kaku/kaku.lua (after loading bundled config)
table.insert(config.keys, {
  key = 'RightArrow',
  mods = 'CMD|SHIFT',
  action = wezterm.action.ActivatePaneDirection('Right'),
})

For the full list of available actions, see WezTerm KeyAssignment reference.

kaku ai

image

image

apiを​セットしてみた
image

ドキュメントには、​コメントあるいは、Cmd + shift + Eで​起動できると​あったが​う​ごかなかった

image

kaku config

1
kaku config

を​実行する​ことで​TUIでの​設定変更が​できる
image

kaku doctor

1
kaku doctor

を​実行する​ことで​kakuの​状態を​確認できる

以下​全文

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
~ kaku doctor
Kaku Doctor
Status: ✓ OK
Summary: 7 ok  0 warn  0 fail  3 info

1. Health [OK]
  - ✓ Overall Health: No blocking issues detected
    - Summary: 7 ok, 0 warn, 0 fail, 3 info
    - Kaku version: 0.9.0

2. Environment [OK]
  - ✓ Current Shell Environment: SHELL is /nix/store/2rb8r6s2ic5wryq75aa0k3vhav51mxj6-fish-4.6.0/bin/fish
    - Kaku shell integration supports zsh and fish for PATH injection and managed shell config
    - Doctor reports the current process environment. GUI-launched apps can differ from a Terminal login shell.
  - ✓ PATH Contains Kaku Managed Bin: PATH includes /Users/wagomu/.config/kaku/fish/bin
    - Kaku command wrapper is expected at /Users/wagomu/.config/kaku/fish/bin/kaku
    - This PATH entry is normally added by Kaku shell integration on startup
    - PATH in Doctor reflects the current process environment and can differ between GUI and Terminal launches.
  - i Fish conf.d Entry Point: Found /Users/wagomu/.config/fish/conf.d/kaku.fish
    - Fish loads Kaku integration via /Users/wagomu/.config/fish/conf.d/kaku.fish

3. Shell Integration [OK]
  - ✓ Managed Fish Init File: Found /Users/wagomu/.config/kaku/fish/kaku.fish
    - Kaku writes PATH and shell integration to this managed file
  - ✓ Kaku Wrapper Script: Wrapper is ready at /Users/wagomu/.config/kaku/fish/bin/kaku
    - The `kaku` shell command is provided by this wrapper
    - Wrapper is generated by `kaku init` before shell setup runs
  - ✓ fish conf.d Sources Kaku Init: Found valid Kaku source entry in /Users/wagomu/.config/fish/conf.d/kaku.fish
    - Checked /Users/wagomu/.config/fish/conf.d/kaku.fish
    - Fish loads Kaku integration via this conf.d file on startup

4. Runtime [OK]
  - ✓ Kaku App Binary: Found executable /Applications/Kaku.app/Contents/Resources/../MacOS/kaku
    - Checked /Applications/Kaku.app/Contents/Resources/../MacOS/kaku
    - Checked /Applications/Kaku.app/Contents/MacOS/kaku
    - Checked /Users/wagomu/Applications/Kaku.app/Contents/MacOS/kaku
  - ✓ Wrapper Execution Probe: Wrapper can launch Kaku binary
    - Command succeeded: /Users/wagomu/.config/kaku/fish/bin/kaku --version
    - Output: kaku 0.9.0
  - i Login Fish Integration Probe: Skipped interactive login fish probe to avoid shell side effects
    - Doctor does not execute `fish -l` because interactive login startup files can run user-defined commands, plugin managers, and network actions.
    - Start a new fish session and verify `echo $PATH` includes ~/.config/kaku/fish/bin if you need end-to-end runtime validation.
  - i Local Network Troubleshooting: Use this when local-network access differs between Kaku and other terminals
    - If LAN access works in Terminal or iTerm2 but fails in Kaku, compare the two launch contexts before changing shell or PATH setup.
    - Run these in both apps: `route -n get <ip>`, `netstat -rn | grep <subnet>`, `ifconfig`, `scutil --nwi`, `ping -v <ip>`, `nc -vz <ip> 22`.
    - Check macOS System Settings > Privacy & Security > Local Network and confirm Kaku is allowed.
    - Compare launching Kaku from Finder/Dock versus Terminal, for example `open -na /Applications/Kaku.app`.
    - Detected app bundle candidate: /Applications/Kaku.app/Contents/Resources

.config/kaku

123456789
.config/kaku ls -l
total 40
-rw-------@ 1 wagomu  staff   682 Apr 10 14:42 assistant.toml
drwx------@ 4 wagomu  staff   128 Apr 10 13:47 fish/
-rw-r--r--@ 1 wagomu  staff  2843 Apr 10 13:47 kaku.lua
-rw-------@ 1 wagomu  staff    14 Apr 10 13:47 last_cwd
-rw-------@ 1 wagomu  staff   102 Apr 10 13:53 lazygit_state.json
-rw-r--r--@ 1 wagomu  staff   167 Apr 11 02:24 state.json
drwx------@ 3 wagomu  staff    96 Apr 10 13:47 tmux/

~/.config/kaku/kaku.lua

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
local wezterm = require 'wezterm'

local function resolve_bundled_config()
  local resource_dir = wezterm.executable_dir:gsub('MacOS/?$', 'Resources')
  local bundled = resource_dir .. '/kaku.lua'
  local f = io.open(bundled, 'r')
  if f then
    f:close()
    return bundled
  end

  local dev_bundled = wezterm.executable_dir .. '/../../assets/macos/Kaku.app/Contents/Resources/kaku.lua'
  f = io.open(dev_bundled, 'r')
  if f then
    f:close()
    return dev_bundled
  end

  local app_bundled = '/Applications/Kaku.app/Contents/Resources/kaku.lua'
  f = io.open(app_bundled, 'r')
  if f then
    f:close()
    return app_bundled
  end

  local home = os.getenv('HOME') or ''
  local home_bundled = home .. '/Applications/Kaku.app/Contents/Resources/kaku.lua'
  f = io.open(home_bundled, 'r')
  if f then
    f:close()
    return home_bundled
  end

  return nil
end

local config = {}
local bundled = resolve_bundled_config()

if bundled then
  local ok, loaded = pcall(dofile, bundled)
  if ok and type(loaded) == 'table' then
    config = loaded
  else
    wezterm.log_error('Kaku: failed to load bundled defaults from ' .. bundled)
  end
else
  wezterm.log_error('Kaku: bundled defaults not found')
end

-- User overrides:
-- Kaku intentionally keeps WezTerm-compatible Lua API names
-- for maximum compatibility, so `wezterm.*` here is expected.
-- Full API docs: https://wezfurlong.org/wezterm/config/lua/
--
-- 1) Font family and size
-- config.font = wezterm.font('JetBrains Mono')
-- config.font_size = 16.0
-- config.line_height = 1.2
--
-- 2) Color scheme
-- config.color_scheme = 'Catppuccin Mocha'
--
-- 3) Window size and padding
-- config.initial_cols = 120
-- config.initial_rows = 30
-- config.window_padding = { left = '24px', right = '24px', top = '40px', bottom = '20px' }
--
-- 4) Window transparency and blur
-- config.window_background_opacity = 0.95
-- config.macos_window_background_blur = 20
--
-- 5) Copy on select
-- config.copy_on_select = false
--
-- 6) Default shell/program
-- config.default_prog = { '/bin/zsh', '-l' }
--
-- 7) Cursor and scrollback
-- config.default_cursor_style = 'BlinkingBar'
-- config.cursor_blink_rate = 500
-- config.scrollback_lines = 20000
--
-- 8) Tab bar
-- config.hide_tab_bar_if_only_one_tab = true
-- config.tab_bar_at_bottom = true
-- config.tab_title_show_basename_only = true
--
-- 9) Working directory inheritance
-- config.window_inherit_working_directory = true
-- config.tab_inherit_working_directory = true
-- config.split_pane_inherit_working_directory = true
--
-- 10) Split pane
-- config.split_pane_gap = 2
-- config.inactive_pane_hsb = { saturation = 1.0, brightness = 0.9 }
--
-- 11) Add or override a key binding
-- table.insert(config.keys, {
--   key = 'Enter',
--   mods = 'CMD|SHIFT',
--   action = wezterm.action.TogglePaneZoomState,
-- })

return config

おわりに

yaziや​weztermの​タブの​設定を​実際に​試すことが​できたのは​よかった。​weztermを​使った​モダンな​環境を​試してみたい​!!と​いう​人には​いいんじゃないかと​思う。
ただ、​AIコーディング用なのに​kaku aiが​使えなかったり、​勝手に​starshipが​入って​プロンプトが​置き換わるのは​残念だった。