AI Coding Setup

Published on
Last updated on
Technical
AI

workspace setup

Coding with AI is my default work setup. I have been using Claude Code with a TUI workspace setup to streamline my coding experience. I mostly use tmux, ghostty, claude code, lazygit, and yazi in my daily development.

tmux

My tmux has enabled tpm as a plugin manager, installs plugins to restore sessions after server reboot, and also enables mouse support to switch panes and windows via mouse click. All settings are stored in ~/.tmux.conf.

  • change tmux prefix key

    Terminal window
    set -g prefix C-a # set Ctrl-a as the prefix key
    unbind C-b # unbind Ctrl-b
    bind C-a send-prefix # allow sending the prefix key
  • set the index, all indexes in tmux start with 0, want to use 1 instead

    Terminal window
    set -g base-index 1 # start windows numbering at 1
    set -gw pane-base-index 1
    set -g renumber-windows on
  • enable mouse

    Terminal window
    set -g mouse on
  • install tpm and other plugins

    Basically, 'tmux-plugins/tpm' and tmux-plugins/tmux-sensible are required to manage plugins. Other plugins should be below them. At last, run '~/.tmux/plugins/tpm/tpm' is mandatory.

    • clone tpm git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
    • update ~/.tmux.conf
      Terminal window
      # List of plugins
      set -g @plugin 'tmux-plugins/tpm'
      set -g @plugin 'tmux-plugins/tmux-sensible'
      # other plugins here
      run '~/.tmux/plugins/tpm/tpm'
  • plugins

    Add new plugins to ~/.tmux.conf with set -g @plugin '...'

    Press prefix + I (capital i, as in Install) to fetch the plugin.

    The following plugins will save the tmux session and also restore it when tmux is restarted.

    Terminal window
    set -g @plugin 'tmux-plugins/tmux-resurrect'
    set -g @plugin 'tmux-plugins/tmux-continuum'
    set -g @continuum-restore 'on'
    set -g @continuum-save-interval '10'

ghostty

By default, Ghostty doesn’t need any config. I just update font and notification setup in ~/.config/ghostty/config.

font-family = "JetBrains Mono"
font-size=20
copy-on-select=clipboard
app-notifications=no-clipboard-copy

yazi

Yazi is a terminal file manager. We can explore and select/view files/directories in TUI mode, super useful in coding. I changed the layout so only 2 parts of the window are displayed instead of the default 3.

[mgr]
ratio=[0, 1, 4]

lazygit

No configuration at all, use all default parameters.

Toolset

Currently I did a couple of coding projects with claude code and other tools, from UI design to implementations. I am pretty used to this setup. As LLMs progress, I feel busier coding. I also tried many tools, but the tools I use most have not changed much.

  • UI/Design

    • pencil: it supports both MCP and ACP, so I can design the UI in claude code via MCP tools or directly in pencil via ACP through Claude or OpenAI agents. Its design is saved in a .pen file, which is actually a JSON file.
    • open-pencil: a similar tool but open source. Now it provides MCP and skills to create design in Claude Code, and also supports configuring various LLMs in its UI (but I didn’t succeed in its UI, only achieved it in Claude Code). It creates design in a .fig file and can be imported into figma or penpot.
    • google stich: I used it to create MTool and several websites. It now supports MCP and skills but has a little bit complicated setup, requiring configuration of a Google Cloud project and API keys.
  • coding

    • most of the time use claude code with super-dev skill
    • tried opencode, but not very satisfied
    • used google antigravity when converting MTool design to website
    • cursor, but still use the super-dev skill
Back to Blog