wezterm-types

July 24, 2026 ยท View on GitHub

Mentioned in Awesome WezTerm
Mentioned in Awesome Neovim

Showcase

This project aims to provide LuaCATS-like LuaLS type annotations for your WezTerm config.

Example videos can be found in EXAMPLES.md.

NOTE: For any missing or unclear types you should always double-check the WezTerm Lua Reference. If using an annotated plugin featured in this repository please refer to its author for any unclear types.

Features

  • LuaCATS-like type annotations
  • Built-in colorschemes included (config.color_scheme)
  • Up-to-date descriptions
  • Community plugin annotations
  • Neovim support
    • Through lazydev.nvim
    • Through the built-in LSP API
  • VSCode/VSCodium support by cloning this into ~/.config/wezterm, then editing your config in that directory

Table of Contents


Installation

LuaRocks

You can install wezterm-types using LuaRocks:

luarocks install wezterm-types # Global install
luarocks install --local wezterm-types # Local install

To get it running in Neovim please refer to this discussion.

Neovim

We recommend using lazy.nvim as a package manager:

{
  'DrKJeff16/wezterm-types',
  version = false, -- Get the latest version
},

This project also features type annotations for various WezTerm plugins.

If you want to add your plugin, please read CONTRIBUTING.md.

PluginDocumentationMaintenance
ai-commander.weztermdocs/ai-commander.md
:h wezterm-types-plugin.ai-commander.txt
Status
Reviewed baseline
Latest upstream
ai-helper.weztermdocs/ai-helper.md
:h wezterm-types-plugin.ai-helper.txt
Status
Reviewed baseline
Latest upstream
bar.weztermdocs/bar.md
:h wezterm-types-plugin.bar.txt
Status
Reviewed baseline
Latest upstream
battery.wezdocs/battery.md
:h wezterm-types-plugin.battery.txt
Status
Reviewed baseline
Latest upstream
chord.wzdocs/chord.md
:h wezterm-types-plugin.chord.txt
Status
Reviewed baseline
Latest upstream
dev.weztermdocs/dev.md
:h wezterm-types-plugin.dev.txt
Status
Reviewed baseline
Latest upstream
kanagawa.wzdocs/kanagawa.md
:h wezterm-types-plugin.kanagawa.txt
Status
Reviewed baseline
Latest upstream
lantern.wzdocs/lantern.md
:h wezterm-types-plugin.lantern.txt
Status
Reviewed baseline
Latest upstream
lib.weztermdocs/lib.md
:h wezterm-types-plugin.lib.txt
Status
Reviewed baseline
Latest upstream
listeners.weztermdocs/listeners.md
:h wezterm-types-plugin.listeners.txt
Status
Reviewed baseline
Latest upstream
log.wzdocs/log.md
:h wezterm-types-plugin.log.txt
Status
Reviewed baseline
Latest upstream
memo.wzdocs/memo.md
:h wezterm-types-plugin.memo.txt
Status
Reviewed baseline
Latest upstream
modal.weztermdocs/modal.md
:h wezterm-types-plugin.modal.txt
Status
Reviewed baseline
Latest upstream
passrelay.weztermdocs/passrelay.md
:h wezterm-types-plugin.passrelay.txt
Status
Reviewed baseline
Latest upstream
pinned-tabs.weztermdocs/pinned-tabs.md
:h wezterm-types-plugin.pinned-tabs.txt
Status
Reviewed baseline
Latest upstream
pivot_panes.weztermdocs/pivot-panes.md
:h wezterm-types-plugin.pivot-panes.txt
Status
Reviewed baseline
Latest upstream
presentation.wezdocs/presentation.md
:h wezterm-types-plugin.presentation.txt
Status
Reviewed baseline
Latest upstream
quick_domains.weztermdocs/quick-domains.md
:h wezterm-types-plugin.quick-domains.txt
Status
Reviewed baseline
Latest upstream
quickselect.weztermdocs/quickselect.md
:h wezterm-types-plugin.quickselect.txt
Status
Reviewed baseline
Latest upstream
resurrect.weztermdocs/resurrect.md
:h wezterm-types-plugin.resurrect.txt
Status
Reviewed baseline
Latest upstream
ribbon.wzdocs/ribbon.md
:h wezterm-types-plugin.ribbon.txt
Status
Reviewed baseline
Latest upstream
rosepinedocs/rosepine.md
:h wezterm-types-plugin.rosepine.txt
Status
Reviewed baseline
Latest upstream
sessionizer.weztermdocs/sessionizer.md
:h wezterm-types-plugin.sessionizer.txt
Status
Reviewed baseline
Latest upstream
sigil.wzdocs/sigil.md
:h wezterm-types-plugin.sigil.txt
Status
Reviewed baseline
Latest upstream
smart-splits.nvimdocs/smart-splits.md
:h wezterm-types-plugin.smart-splits.txt
Status
Reviewed baseline
Latest upstream
smart_workspace_switcher.weztermdocs/smart-workspace-switcher.md
:h wezterm-types-plugin.smart-workspace-switcher.txt
Status
Reviewed baseline
Latest upstream
stack.wezdocs/stack.md
:h wezterm-types-plugin.stack.txt
Status
Reviewed baseline
Latest upstream
sync-panes.wezdocs/sync-panes.md
:h wezterm-types-plugin.sync-panes.txt
Status
Reviewed baseline
Latest upstream
tabline.wezdocs/tabline.md
:h wezterm-types-plugin.tabline.txt
Status
Reviewed baseline
Latest upstream
tabsets.weztermdocs/tabsets.md
:h wezterm-types-plugin.tabsets.txt
Status
Reviewed baseline
Latest upstream
toggle_terminal.wezdocs/toggle-terminal.md
:h wezterm-types-plugin.toggle-terminal.txt
Status
Reviewed baseline
Latest upstream
warp.wzdocs/warp.md
:h wezterm-types-plugin.warp.txt
Status
Reviewed baseline
Latest upstream
wez-pain-controldocs/wez-pain-control.md
:h wezterm-types-plugin.wez-pain-control.txt
Status
Reviewed baseline
Latest upstream
wez-tmuxdocs/wez-tmux.md
:h wezterm-types-plugin.wez-tmux.txt
Status
Reviewed baseline
Latest upstream
wezterm-agent-deckdocs/agent-deck.md
:h wezterm-types-plugin.agent-deck.txt
Status
Reviewed baseline
Latest upstream
wezterm-attentiondocs/attention.md
:h wezterm-types-plugin.attention.txt
Status
Reviewed baseline
Latest upstream
wezterm-cmd-senderdocs/cmd-sender.md
:h wezterm-types-plugin.cmd-sender.txt
Status
Reviewed baseline
Latest upstream
wezterm-cmdpickerdocs/cmdpicker.md
:h wezterm-types-plugin.cmdpicker.txt
Status
Reviewed baseline
Latest upstream
wezterm-config.nvimdocs/wezterm-config.md
:h wezterm-types-plugin.wezterm-config.txt
Status
Reviewed baseline
Latest upstream
wezterm-quota-limitdocs/quota-limit.md
:h wezterm-types-plugin.quota-limit.txt
Status
Reviewed baseline
Latest upstream
wezterm-replaydocs/replay.md
:h wezterm-types-plugin.replay.txt
Status
Reviewed baseline
Latest upstream
wezterm-sessionsdocs/wezterm-sessions.md
:h wezterm-types-plugin.wezterm-sessions.txt
Status
Reviewed baseline
Latest upstream
wezterm-statusdocs/wezterm-status.md
:h wezterm-types-plugin.wezterm-status.txt
Status
Reviewed baseline
Latest upstream
wezterm-syncdocs/sync.md
:h wezterm-types-plugin.sync.txt
Status
Reviewed baseline
Latest upstream
wezterm-tabsdocs/wezterm-tabs.md
:h wezterm-types-plugin.wezterm-tabs.txt
Status
Reviewed baseline
Latest upstream
wezterm-theme-rotatordocs/wezterm-theme-rotator.md
:h wezterm-types-plugin.wezterm-theme-rotator.txt
Status
Reviewed baseline
Latest upstream
widgets.wezdocs/widgets.md
:h wezterm-types-plugin.widgets.txt
Status
Reviewed baseline
Latest upstream
workspace-picker.weztermdocs/workspace-picker.md
:h wezterm-types-plugin.workspace-picker.txt
Status
Reviewed baseline
Latest upstream
workspacesionizer.weztermdocs/workspacesionizer.md
:h wezterm-types-plugin.workspacesionizer.txt
Status
Reviewed baseline
Latest upstream
wsinit.weztermdocs/wsinit.md
:h wezterm-types-plugin.wsinit.txt
Status
Reviewed baseline
Latest upstream

Usage

After installing the types, add the type annotations to wezterm and config respectively when running require("wezterm") in your configuration.

A useful example:

local wezterm = require("wezterm") ---@type Wezterm
local config = wezterm.config_builder() ---@type Config

config.window_decorations = "RESIZE|MACOS_FORCE_DISABLE_SHADOW"

return config

These annotations enable the Lua Language Server to provide proper type checking and autocompletion for WezTerm configuration options.

Using lazydev.nvim

Install lazydev.nvim as suggested:

{
  'folke/lazydev.nvim',
  ft = 'lua',
  dependencies = { 'DrKJeff16/wezterm-types' },
  opts = {
    library = {
      -- Other library configs...
      { path = 'wezterm-types', mods = { 'wezterm' } },
    },
  },
}

If you download this repo under a diferent name, you can use the following instead:

{
  'folke/lazydev.nvim',
  ft = 'lua',
  dependencies = {
    {
      'DrKJeff16/wezterm-types',
      name = '<my_custom_name>', -- CUSTOM DIRECTORY NAME
    },
  },
  opts = {
    library = {
      -- MAKE SURE TO MATCH THE PLUGIN DIRECTORY'S NAME
      { path = '<my_custom_name>', mods = { 'wezterm' } },
    },
  },
}

Using The Built-in Neovim LSP

Add the install path of wezterm-types in your lua_ls config.

return {
  cmd = { 'lua-language-server' },
  filetypes = { 'lua' },
  settings = {
    Lua = {
      workspace = {
        library = {
          -- Other library paths...
          '</path/to/wezterm-types>',
        },
      },
    },
  },
}

Star History Chart