3.9 KiB


All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.



  • -v verbose option. Normal mode output is now cleaner and more focused.


  • When upgrading, download latest release asset instead of raw file from the master branch.
  • curl is preferred over wget.
  • wget's output is only shown in verbose mode.

1.0.1 - 2020-01-09


  • Zsh 5.2 does not recognize the :P modifier. Replace it by :A.
  • Also compile and clean .zprofile among the startup files.
  • Don't fail on zimfw clean-dumpfile when there's nothing to remove.

1.0.0 - 2020-01-07

This is a major change, where modules are not git submodules in the Zim repo anymore, but customized and installed separately as individual repositories. External modules can more easily be installed, updated and uninstalled. This makes Zim the first project for Zsh that is both a set of community-maintained modules with a default installation (like on-my-zsh and prezto) and a plugin manager (like antigen and zplug).

This version is not backwards-compatible with previous versions, so a new installation of Zim is required.

Take your time to review the updated README.md and the changes listed below.


  • zimfw CLI tool.
  • zmodule function to define modules.
  • Automatic installation script.
  • zsh-users/zsh-autosuggestions is enabled by default in new installations.


  • The Zim "core" is reduced to a single file, namely zimfw.zsh, that is self-updated without requiring git. With this, ZIM_HOME is not (the root of) a git repo anymore.
  • Zsh and modules are configured in .zshrc instead of .zimrc.
  • .zimrc is not sourced during Zsh startup anymore, and only contains the module definitions.
  • Zim's init.zsh and login_init.zsh scripts are generated by the zimfw CLI tool and contain static code. This allows for constant startup time, regardless of how complex the module definitions are.
  • Zim modules moved to individual repositories in the https://github.com/zimfw organization.
  • Zim modules are configured with zstyle instead of environment variables.
  • Zim themes are sourced directly, instead of working with prompinit, and are configured with environment variables instead of with promptinit parameters.
  • The environment module is reduced in scope to to only set Zsh options. The additional code moved to the input module (smart-URL widgets), the utility module (default pager), and a new termtitle module (terminal window title).
  • The minimal theme is renamed to s1ck94.


  • zmanage CLI tool.
  • The directory and history modules. Their code moved into the environment module.
  • The prompt module, and the external lean, liquidprompt and pure themes. Use zmodule miekg/lean, or zmodule nojhan/liquidprompt, or zmodule sindresorhus/pure --source async.zsh --source pure.zsh to define one of these external themes, respectively. The Zim themes moved to individual repositories.
  • Support for themes that require promptinit. (See #325)


  • ZIM_HOME is set in .zshenv instead of .zshrc. The issue was that the variable was not available in .zlogin in non-interactive login shells.