Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ZSH Plugins
  3. evalcache

evalcache

MITShellv1.0.3

A zsh plugin that caches the output of binary initialization commands to significantly reduce shell startup time.

GitHubGitHub
264 stars15 forks0 contributors

What is evalcache?

evalcache is a zsh plugin that caches the output of binary initialization commands to reduce shell startup time. It works by replacing `eval` commands with `_evalcache`, storing the static output in a file for future use, which eliminates the overhead of repeatedly executing the same initialization scripts.

Target Audience

Developers using zsh who rely on tools like rbenv, hub, or scmpuff and want to optimize their shell startup performance, especially those who frequently open new terminal tabs or sessions.

Value Proposition

It provides a simple, non-intrusive way to shave milliseconds off shell startup by caching static initialization output, with minimal configuration and graceful fallback behavior if tools are removed.

Overview

:hatching_chick: zsh plugin to cache eval loads to improve shell startup time

Use Cases

Best For

  • Reducing zsh startup time when using multiple shell wrapper tools
  • Optimizing terminal performance for developers who open many shell sessions
  • Caching static initialization commands from tools like rbenv or hub
  • Improving productivity by speeding up shell environment loading

Not Ideal For

  • Shell environments using bash or other non-zsh shells
  • Dynamic initialization commands where output changes frequently
  • Users with minimal shell startup overhead or few initialization tools
  • Systems requiring real-time execution for security or compliance

Pros & Cons

Pros

Significant Speed Gains

Benchmarks in the README show up to 88% reduction in initialization time for tools like rbenv, making subsequent shell startups much faster.

Graceful Degradation

If a tool is uninstalled, evalcache automatically becomes a no-op, preventing errors and ensuring compatibility without manual intervention.

Easy Cache Management

Includes a convenience function `_evalcache_clear` to manually clear cached files, as documented, simplifying updates when needed.

Minimal Configuration

Works out of the box with default settings, and environment variables like ZSH_EVALCACHE_DIR allow customization without complex setup.

Cons

Static Output Limitation

Only caches static initialization commands; dynamic or time-sensitive outputs may become stale, requiring manual cache clearing and potentially causing issues.

Tool Dependency

Primarily optimized for specific tools like rbenv, hub, and scmpuff; it offers less benefit for other initialization patterns or custom scripts.

Manual Cache Invalidation

Users must remember to clear caches after tool updates, as there's no automatic invalidation, which can lead to outdated configurations if overlooked.

Frequently Asked Questions

Quick Stats

Stars264
Forks15
Contributors0
Open Issues2
Last commit11 months ago
CreatedSince 2017

Tags

#developer-tools#productivity#shell-optimization#terminal#zsh-plugin#zsh#performance#startup-time

Built With

z
zsh

Included in

ZSH Plugins17.6k
Auto-fetched 15 hours ago

Related Projects

zoxidezoxide

A smarter cd command. Supports all major shells.

Stars40,266
Forks933
Last commit18 hours ago
zsh-autosuggestionszsh-autosuggestions

Fish-like autosuggestions for zsh

Stars36,151
Forks1,940
Last commit1 year ago
zsh-syntax-highlightingzsh-syntax-highlighting

Fish shell like syntax highlighting for Zsh.

Stars23,050
Forks1,374
Last commit15 days ago
autojumpautojump

A cd command that learns - easily navigate directories from the command line

Stars16,966
Forks708
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub