{"id":13597560,"url":"https://github.com/jbangdev/jbang","last_synced_at":"2026-06-16T00:01:22.054Z","repository":{"id":37005590,"uuid":"230011262","full_name":"jbangdev/jbang","owner":"jbangdev","description":"Unleash the power of Java - JBang Lets Students, Educators and Professional Developers create, edit and run self-contained source-only Java programs with unprecedented ease.","archived":false,"fork":false,"pushed_at":"2026-05-22T10:06:34.000Z","size":12774,"stargazers_count":1803,"open_issues_count":361,"forks_count":188,"subscribers_count":24,"default_branch":"main","last_synced_at":"2026-05-22T16:44:38.013Z","etag":null,"topics":["bash","hacktoberfest","java","scripting","shell"],"latest_commit_sha":null,"homepage":"https://jbang.dev","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jbangdev.png","metadata":{"files":{"readme":"readme.adoc","changelog":null,"contributing":"CONTRIBUTING.adoc","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"commonhaus","open_collective":"commonhaus-foundation"}},"created_at":"2019-12-24T22:52:02.000Z","updated_at":"2026-05-22T05:38:55.000Z","dependencies_parsed_at":"2026-05-06T08:02:19.673Z","dependency_job_id":null,"html_url":"https://github.com/jbangdev/jbang","commit_stats":{"total_commits":1635,"total_committers":99,"mean_commits":"16.515151515151516","dds":0.6134556574923548,"last_synced_commit":"2aa4b0d3c12ec21b97fd018ea41814b2a5790ccc"},"previous_names":[],"tags_count":304,"template":false,"template_full_name":null,"purl":"pkg:github/jbangdev/jbang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbangdev%2Fjbang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbangdev%2Fjbang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbangdev%2Fjbang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbangdev%2Fjbang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbangdev","download_url":"https://codeload.github.com/jbangdev/jbang/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbangdev%2Fjbang/sbom","scorecard":{"id":102402,"data":{"date":"2025-08-11","repo":{"name":"github.com/jbangdev/jbang","commit":"e957fe9f17575e54081c826a7bc555845cb3128c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.5,"checks":[{"name":"Code-Review","score":2,"reason":"Found 5/21 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"internal error: internal error: invalid Dockerfile: LABEL must have two arguments","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:26","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:27","Warn: no topLevel permission defined: .github/workflows/cache-clear.yml:1","Warn: no topLevel permission defined: .github/workflows/ci-build.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/install-tests.yml:1","Warn: no topLevel permission defined: .github/workflows/publish-packages.yml:1","Warn: topLevel 'checks' permission set to 'write': .github/workflows/report.yml:15","Warn: no topLevel permission defined: .github/workflows/tag-and-release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":8,"reason":"5 out of the last 5 releases have a total of 5 signed artifacts.","details":["Info: signed release artifact: checksums_sha256.txt.asc: https://github.com/jbangdev/jbang/releases/tag/v0.129.0","Info: signed release artifact: checksums_sha256.txt.asc: https://github.com/jbangdev/jbang/releases/tag/v0.128.7","Info: signed release artifact: checksums_sha256.txt.asc: https://github.com/jbangdev/jbang/releases/tag/v0.128.6","Info: signed release artifact: checksums_sha256.txt.asc: https://github.com/jbangdev/jbang/releases/tag/v0.128.5","Info: signed release artifact: checksums_sha256.txt.asc: https://github.com/jbangdev/jbang/releases/tag/v0.128.2","Warn: release artifact v0.129.0 does not have provenance: https://api.github.com/repos/jbangdev/jbang/releases/238405487","Warn: release artifact v0.128.7 does not have provenance: https://api.github.com/repos/jbangdev/jbang/releases/236462591","Warn: release artifact v0.128.6 does not have provenance: https://api.github.com/repos/jbangdev/jbang/releases/236457834","Warn: release artifact v0.128.5 does not have provenance: https://api.github.com/repos/jbangdev/jbang/releases/235449941","Warn: release artifact v0.128.2 does not have provenance: https://api.github.com/repos/jbangdev/jbang/releases/235444764"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/ci-build.yml:41"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: itests/hellojar.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (17) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T10:24:18.082Z","repository_id":37005590,"created_at":"2025-08-15T10:24:18.083Z","updated_at":"2025-08-15T10:24:18.083Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33676192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","hacktoberfest","java","scripting","shell"],"created_at":"2024-08-01T17:00:36.147Z","updated_at":"2026-05-30T01:04:27.062Z","avatar_url":"https://github.com/jbangdev.png","language":"Java","funding_links":["https://github.com/sponsors/commonhaus","https://opencollective.com/commonhaus-foundation"],"categories":["Java","bash","\u003ca name=\"Java\"\u003e\u003c/a\u003eJava"],"sub_categories":[],"readme":"= JBang - Unleash the Power of Java 🚀\n:idprefix:\n:idseparator: -\nifndef::env-github[]\n:toc: left\n:icons: font\nendif::[]\nifdef::env-github[]\n:toc: macro\n:caution-caption: :fire:\n:important-caption: :exclamation:\n:note-caption: :paperclip:\n:tip-caption: :bulb:\n:warning-caption: :warning:\nendif::[]\n\nimage:https://img.shields.io/github/release/jbangdev/jbang.svg[Release,link=https://github.com/jbangdev/jbang/releases]\nimage:https://img.shields.io/github/downloads/jbangdev/jbang/total.svg[Downloads,link=https://hanadigital.github.io/grev/?user=jbangdev\u0026repo=jbang]\nimage:https://github.com/jbangdev/jbang/workflows/ci-build/badge.svg[Build Status,link=https://github.com/jbangdev/jbang/actions]\nimage:https://www.eclipse.org/che/contribute.svg[Che, link=https://che.openshift.io/f?url=https://github.com/jbangdev/jbang]\nimage:https://img.shields.io/badge/Gitpod-Workspace-blue?logo=gitpodp[Gitpod, link=https://gitpod.io/#https://github.com/jbangdev/jbang]\nimage:https://img.shields.io/badge/zulip-join_chat-brightgreen.svg[Chat, link=https://jbangdev.zulipchat.com/]\nimage:https://api.scorecard.dev/projects/github.com/jbangdev/jbang/badge[OpenSSF Scorecard,link=https://scorecard.dev/viewer/?uri=github.com/jbangdev/jbang]\n\nifdef::env-github[]\ntoc::[]\nendif::[]\n\nimage:images/jbang_logo.svg[JBang Logo, title=\"JBang Logo\"]\n\nWant to learn, explore or use Java instantly without setup?\n\nDo you like Java but use Python, Groovy, Kotlin or similar languages for scripts, experimentation and exploration?\n\nEver wanted to just be able to run Java from anywhere without any or very minimal setup?\n\nThen **JBang** is for you! 🎉\n\n== Quick Start\n\n[source, bash]\n----\n# Install JBang\ncurl -Ls https://sh.jbang.dev | bash -s - app setup\n\n# Create and run your first script\njbang init --template=cli hello.java\njbang hello.java Max!\n----\n\nimage:https://asciinema.org/a/4AiobRxUwPUPztCtrDYcmoKjs.svg[link=https://asciinema.org/a/4AiobRxUwPUPztCtrDYcmoKjs?autoplay=true\u0026theme=solarized-dark]\n\n== What is JBang?\n\nJBang makes it easy to write and run Java scripts without traditional project setup. It handles:\n\n- **Zero setup** - Run `.java` files directly\n- **Dependency management** - Declare with `//DEPS`, auto-resolve from Maven\n- **Multiple languages** - Java, Kotlin, Groovy, JShell, Markdown  \n- **IDE integration** - Full IDE support with `jbang edit`\n- **Native compilation** - Generate native binaries with GraalVM\n- **Script sharing** - Via GitHub, catalogs, and aliases\n\n== Key Features\n\n✅ **Instant Java scripting** - No build files, no project setup\n✅ **Dependency management** - Maven-style deps with `//DEPS`\n✅ **Multiple file types** - `.java`, `.jsh`, `.kt`, `.groovy`, `.md`\n✅ **IDE support** - Full IntelliSense with `jbang edit`\n✅ **Cross-platform** - Windows, macOS, Linux, AIX\n✅ **Native images** - GraalVM native-image support\n✅ **Easy sharing** - GitHub URLs, catalogs, aliases\n✅ **Template system** - Quick start with `jbang init`\n\n== Installation\n\n**Quick Install (recommended):**\n[source, bash]\n----\ncurl -Ls https://sh.jbang.dev | bash -s - app setup\n----\n\n**Package managers:**\n- SDKMan: `sdk install jbang`\n- Homebrew: `brew install jbangdev/tap/jbang`\n- Chocolatey: `choco install jbang`\n- Scoop: `scoop install jbang`\n\nSee https://jbang.dev/documentation/jbang/latest/installation[installation docs] for more options.\n\n== Examples\n\n=== Hello World\n[source, java]\n----\n///usr/bin/env jbang \"$0\" \"$@\" ; exit $?\n\nclass hello {\n    public static void main(String[] args) {\n        System.out.println(\"Hello \" + (args.length \u003e 0 ? args[0] : \"World\"));\n    }\n}\n----\n\n=== CLI App with Dependencies\n[source, java]\n----\n///usr/bin/env jbang \"$0\" \"$@\" ; exit $?\n//DEPS info.picocli:picocli:4.6.3\n\nimport picocli.CommandLine;\nimport picocli.CommandLine.Command;\nimport picocli.CommandLine.Parameters;\n\n@Command(name = \"hello\", mixinStandardHelpOptions = true)\nclass hello implements Runnable {\n    @Parameters(index = \"0\", description = \"The greeting to print\")\n    private String greeting;\n\n    public static void main(String[] args) {\n        new CommandLine(new hello()).execute(args);\n    }\n\n    public void run() {\n        System.out.println(\"Hello \" + greeting);\n    }\n}\n----\n\n=== Web Server\n[source, java]\n----\n///usr/bin/env jbang \"$0\" \"$@\" ; exit $?\n//DEPS io.javalin:javalin:7.1.0\n//DEPS org.slf4j:slf4j-simple:2.0.17\n//JAVA 21+\n\nimport io.javalin.Javalin;\n\nclass WebServer {\n    public static void main(String[] args) {\n        String response  = \"Hello from JBang!\";\n        var app = Javalin.create(config -\u003e {\n            config.concurrency.useVirtualThreads = true;\n            config.routes.get(\"/\", ctx -\u003e ctx.result(response));\n        }).start(8000);\n    }\n}\n----\n\n== Common Commands\n\n[source, bash]\n----\n# Create new script from template\njbang init --template=cli myapp.java\n\n# Run script with dependencies\njbang myapp.java\n\n# Edit with full IDE support\njbang edit myapp.java\n\n# Run remote script\njbang https://github.com/user/repo/blob/main/script.java\n\n# Create alias for easy access\njbang alias add --name myapp myapp.java\n\n# Export to traditional project\njbang export maven myapp.java\n\n# Create native binary\njbang --native myapp.java\n\n# Install as system command\njbang app install myapp.java\n----\n\n== AppStore\n\nBeyond scripting, JBang can launch any Java application packaged as a JAR. Check out the https://jbang.dev/appstore[AppStore] for examples and community-contributed scripts.\n\n== Documentation\n\n📖 **User documentation:** https://jbang.dev/documentation\n\n📖 **Technical documentation:** https://deepwiki.com/jbangdev/jbang, AI generated from source code.\n\n\n\n\nQuick links:\n\n- 🚀 https://jbang.dev/documentation/jbang/latest/quickstart.html[Quick Start Guide]\n- 📦 https://jbang.dev/documentation/jbang/latest/installation.html[Installation]\n- 🔧 https://jbang.dev/documentation/jbang/latest/dependencies.html[Dependencies]\n- 🎯 https://jbang.dev/documentation/jbang/latest/templates.html[Templates]\n- 🛠️ https://jbang.dev/documentation/jbang/latest/editing.html[IDE Integration]\n- ❓ https://jbang.dev/documentation/jbang/latest/faq.html[FAQ]\n\n== Community\n\n- 💬 **Chat:** https://jbangdev.zulipchat.com[Zulip Community]\n- 🐛 **Issues:** https://github.com/jbangdev/jbang/issues[GitHub Issues]\n- 🛍️ **App Store:** https://jbang.dev/appstore[JBang App Store]\n- 📚 **Examples:** https://github.com/jbangdev/jbang-examples[jbang-examples]\n\n== Contributing\n\nWe welcome contributions! Please see our https://github.com/jbangdev/jbang/blob/main/CONTRIBUTING.adoc[Contributing Guide] for details.\n\n== Thanks\n\nJBang was heavily inspired by https://github.com/holgerbrandl/kscript[kscript] by Holger Brand.\n\n== License\n\nJBang is released under the https://github.com/jbangdev/jbang/blob/main/LICENSE[MIT License].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbangdev%2Fjbang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbangdev%2Fjbang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbangdev%2Fjbang/lists"}