{"id":26477498,"url":"https://github.com/helpme970/bubblejail","last_synced_at":"2026-04-14T17:31:31.442Z","repository":{"id":278864343,"uuid":"937016502","full_name":"helpme970/bubblejail","owner":"helpme970","description":"lightweight Bash wrapper around bubblewrap that simplifies its commands","archived":false,"fork":false,"pushed_at":"2026-04-03T19:01:51.000Z","size":157,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-03T21:08:09.793Z","etag":null,"topics":["bubblewrap","bubblewrap-scripts","bubblewrap-wrap","bwrap","desktop","desktop-security","gnu-linux","linux","linux-containers","namespace","namespaces","sandbox","sandboxing","security","security-tools","shell","shell-script","shellscript"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/helpme970.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-22T06:06:46.000Z","updated_at":"2026-04-03T19:01:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"c4762c45-e6cf-4ff1-9579-12df5bfe9a89","html_url":"https://github.com/helpme970/bubblejail","commit_stats":null,"previous_names":["helpme970/bubblejail"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/helpme970/bubblejail","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helpme970%2Fbubblejail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helpme970%2Fbubblejail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helpme970%2Fbubblejail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helpme970%2Fbubblejail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/helpme970","download_url":"https://codeload.github.com/helpme970/bubblejail/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helpme970%2Fbubblejail/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31808505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bubblewrap","bubblewrap-scripts","bubblewrap-wrap","bwrap","desktop","desktop-security","gnu-linux","linux","linux-containers","namespace","namespaces","sandbox","sandboxing","security","security-tools","shell","shell-script","shellscript"],"created_at":"2025-03-20T00:47:24.306Z","updated_at":"2026-04-14T17:31:31.436Z","avatar_url":"https://github.com/helpme970.png","language":"Shell","readme":"## bubblejail\n\nA lightweight Bash wrapper around **bubblewrap** that simplifies its command line and adds handy features such as AppImage support. Contributions and bug reports are welcome.\n\n---\n\n### What is bubblejail?\n\n✓ Provides short, readable aliases for common bubblewrap options.  \n✓ Adds higher‑level helpers (e.g., automatic X11/Wayland handling, audio forwarding, sandboxed home directories).  \n✓ Fully compatible with all native bubblewrap arguments.\n\n---\n\n### Dependencies\n\n| Component | Reason |\n|-----------|--------|\n| **Xephyr** or **Xnest** | X11 host for sandboxed graphical sessions |\n| **Openbox** or **bspwm** | Window manager inside the sandbox |\n| **bash** | Script interpreter |\n| **[virtualgl](https://github.com/VirtualGL/virtualgl)** | OpenGL support in X11-Sandbox |\n| **[bubblewrap](https://github.com/containers/bubblewrap)** | backend |\n\n---\n\n### Installation\n\n1. Download `bubblejail`.  \n2. Make it executable: `chmod +x bubblejail`.  \n3. Run it directly or place it in a directory that’s on your `$PATH`.\n\n---\n\n### Basic Usage\n\n```bash\nbash bubblejail --stdir --video --net --audio -p firefox\n```\n\nThe example above launches **Firefox** with shared standard directories, video output, network access, and audio support.\n\n---\n\n### Command‑Line Options\n\n| Short / Long Flag | Description |\n|-------------------|-------------|\n| `-p, --program` | Followed by the program name or full path to execute. |\n| `-d, --debug` | Show all stdout/stderr output for troubleshooting. |\n| `-h, --help` | Display help information. |\n| `-v, --version` | Print the versions of **bubblejail** and **bubblewrap**. |\n| `--video` | Auto‑detect and share the appropriate X11 or Wayland socket for GUI apps. |\n| `--wayland` | Explicitly share the Wayland socket. |\n| `--x11` | Share the default X11 socket. |\n| `--x11 :N` | Share the X11 socket of session *N* (e.g., `:10`). |\n| `--x11-sandbox` | Start a fresh X11 session with Xephyr and run the program inside it. |\n| `--audio` | Forward PulseAudio, PipeWire, ALSA, or OSS sockets for sound and mic access. |\n| `--gpu` | Enable hardware‑accelerated graphics inside the sandbox. |\n| `--cam`, `--webcam`, `--camera` | Grant access to the webcam (requires `v4l`/`v4l2`). |\n| `--stdir` | Bind essential system directories needed by most programs. |\n| `--enable-userns`, `--share-userns` | Allow additional user namespaces. |\n| `--share-ipc` | Permit inter‑process communication. |\n| `--net`, `--share-net`, `--network` | Enable network connectivity. |\n| `--root` | Run the sandbox as UID 0. |\n| `--nobody` | Run as UID 65534 (the “nobody” user). |\n| `--current-user` | Use the invoking user’s UID (default). |\n| `--virt-home` | Use a persistent empty home directory. |\n| `--tmp-home` | Use a temporary home that is removed on exit. |\n| `--box \u003cname\u003e` | Create an isolated root for multiple programs under *name*. |\n| `--pass \u003cSRC\u003e` | Bind *SRC* to the same path inside the sandbox (read‑write). |\n| `--ro-pass \u003cSRC\u003e` | Same as `--pass` but read‑only. |\n| `--dev-pass \u003cSRC\u003e` | Bind with device permissions. |\n| `--pass-try \u003cSRC\u003e` | Like `--pass` but ignore missing paths. |\n| `--ro-pass-try \u003cSRC\u003e` | Read‑only version of `--pass-try`. |\n| `--dev-pass-try \u003cSRC\u003e` | Device‑access version of `--pass-try`. |\n| `--bind \u003cSRC\u003e \u003cDEST\u003e` | Bind *SRC* to *DEST* inside the sandbox. |\n| `--ro-bind \u003cSRC\u003e \u003cDEST\u003e` | Read‑only bind. |\n| `--dev-bind \u003cSRC\u003e \u003cDEST\u003e` | Device‑access bind. |\n| `--bind-try \u003cSRC\u003e \u003cDEST\u003e` | Bind without error on missing source. |\n| `--ro-bind-try \u003cSRC\u003e \u003cDEST\u003e` | Read‑only version of `--bind-try`. |\n| `--dev-bind-try \u003cSRC\u003e \u003cDEST\u003e` | Device‑access version of `--bind-try`. |\n| `--clone`, `--copy` | Copy a file or directory into the sandbox with write permissions. |\n| `--tmpfs`, `--tmp` | Create a temporary directory that disappears when the sandbox stops. |\n| `--pass-lang` | Propagate the host’s locale settings. |\n| `--usb` | Pass all USB drives with write access. |\n| `--ro-usb` | Same as `--usb` but read‑only. |\n| `--dbus \u003cpattern\u003e` | Grant the program ownership of matching D‑Bus names (e.g., `org.example.portal.*`). |\n| `--desktop-portal` | Allow secure access to external files, opening URLs, etc., via the desktop portal. |\n\n\u003e **All** native bubblewrap arguments are also accepted; they are passed through unchanged.\n\n---\n\n### Contributing\n\n- Report bugs via the **Issues** tab.  \n- Star the repository if you find it useful.  \n- Pull requests are welcome—especially improvements to documentation, new helper flags, or better handling of edge cases.\n\n---\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelpme970%2Fbubblejail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelpme970%2Fbubblejail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelpme970%2Fbubblejail/lists"}