babashka/babashka

Native, fast starting Clojure interpreter for scripting

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 41 minutes ago
Added to GitGenius on September 15th, 2026
Created on August 9th, 2019
Open Issues & Pull Requests: 42 (+0)
GitHub issues: Enabled
Number of forks: 280
Total Stargazers: 4,609 (+0)
Total Subscribers: 46 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.4 hours
Mean response time: 42.7 days
90th percentile: 22.1 days
Tracked items: 141

Most active contributors

Sign in to see contributor activity.

How this project is maintained

About 9% of issues opened in the past year have never received a reply. 70% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 78% of issues opened in the past year have been closed, leaving a working backlog. Three people close 91% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 23
New in 7 days: 5
Closed in 7 days: 7
Avg open age: 343 days
Stale 30+ days: 20
Stale 90+ days: 16

Recent activity

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

Top labels

  • PR welcome (2)
  • bug (2)
  • help wanted (1)

Detailed Description

Babashka is a native Clojure interpreter for scripting that starts fast and requires no JVM.

The tool solves the problem of writing shell scripts that are too complex for bash but too simple to justify a full JVM Clojure application. It interprets a substantial subset of Clojure using SCI, providing access to commonly used Java classes like System, File, and java.time, along with multi-threading support through functions like pmap and future. The interpreter ships as a self-contained binary with no external dependencies, making installation straightforward across Linux, macOS, and Windows.

Babashka suits developers comfortable with Clojure who want to replace bash scripts without the startup overhead of JVM Clojure. It works best for scripts that run in a few seconds or less; scripts with heavy computation or extensive loops will perform better on the JVM despite its slower startup. The tool is designed to integrate with existing shells rather than replace them, allowing you to call it from within bash and other shell environments. The README notes that interpreting code is inherently less performant than compiled code, setting expectations for use cases where raw speed matters less than development velocity.

The project maintains stable functionality for clojure.core and java.lang, with changes unlikely in those areas. Other parts of the tool may evolve, though the maintainers aim to minimize breaking changes and document them in release notes. The tool includes batteries-in-the-box libraries like tools.cli and cheshire, reducing the need to manage dependencies for common scripting tasks.