elves/elvish

Powerful scripting language & versatile interactive shell

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 18 minutes ago
Added to GitGenius on September 10th, 2026
Created on June 16th, 2013
Open Issues & Pull Requests: 351 (+0)
GitHub issues: Enabled
Number of forks: 333
Total Stargazers: 6,380 (+0)
Total Subscribers: 104 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 178
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,858 days
Stale 30+ days: 178
Stale 90+ days: 175

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • lang/stdlib (106)
  • maybe (18)
  • bug (13)
  • epm rewrite (7)
  • doc (5)
  • data/ops rationalization (2)
  • question (2)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Elvish is a shell and scripting language that combines interactive use with a full programming language designed for both tasks.

The project addresses the fragmentation between interactive shells optimized for command-line work and separate scripting languages used for automation. Elvish unifies these by providing a single language that works well interactively while supporting structured programming. It emphasizes expressiveness through first-class functions, namespaces, and data structures, moving beyond the string-oriented model of traditional shells. The language includes a built-in module system and aims to make shell scripting less error-prone through better syntax and semantics.

Elvish suits developers who find traditional shell syntax limiting or who want to avoid context-switching between a shell and a scripting language. It works well for system automation, interactive command-line work, and scripts that benefit from proper data structures and functional programming patterns. The project is most appropriate for users comfortable learning a new shell environment and who value expressiveness over compatibility with existing shell scripts. Those deeply invested in POSIX shell compatibility or who need to maintain scripts across many systems should consider whether the learning curve justifies the benefits.

Development on the project shows consistent activity with regular commits addressing bugs, features, and documentation. The maintainers respond to issues and pull requests, indicating active engagement with the user community. The codebase receives ongoing refinement rather than major architectural overhauls, suggesting a focus on stability and incremental improvement. Documentation is maintained alongside code changes, reflecting attention to helping users understand the language and its features.