Back to Explorer
Beginner Friendly Open-Source Shell

Good First Issues in Shell

Explore curated starter issues in high-scoring Shell repositories. Every listed issue belongs to a welcoming repository scored by C-Rank™ on PR merge rates, review responsiveness, and first-timer acceptance.

Updated: Mon, 31 Aug 2026 UTC (Live GitHub Sync)
Real-Time Radar

Arm Issue Sniper for fresh Shell beginner issues

Beginner issues in welcoming S/A-Tier repositories get snatched within 15 minutes. Receive instant alerts on Discord, Telegram, or Email the minute a maintainer opens a new task.

Live Good First Issues (30)

Real-Time Open GitHub Issues
Antiz96/arch-update436 Tier S · 78 pts
#766Opened 2 days ago
Formating issues in the Chinese simplified translation

Environment Distribution: NA Graphical environment: NA Arch-Update version: v4.2.0 Arch-Update configuration NA Description of the bug There are some formatting issues in the Chinese simplified translation (zh_CN). Basically missing \ in the translated lines (it should be \\n rather than \n). See the logs below for the affected lines. Logs po/zh_CN.po:456: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:553: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:558: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:614: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:724: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:736: 'msgid' and 'msgstr' entries do not both end with '\n' po/zh_CN.po:741: 'msgid' and 'msgstr' entries do not both end with '\n' msgfmt: found 7 fatal errors Additional context NA

buggood first issue
armbian/build5,361 Tier A · 68 pts
#10544Opened 3 days ago
[Bug]: Fails to compile on system if any parent above is shared and has se_linux labels applied for samba.

What happened? I'm compiling on Fedora 44 KDE 6.7 Wayland, 128GB RAM. This is the coiline options I need but the options don't change the outcome as the bug is in the build script itself. ./compile.sh build BOARD=rpi4b BRANCH=edge RELEASE=trixie KERNEL_TARGET=edge BUILD_MINIMAL=yes BUILD_DESKTOP=no BOOT_LOGO=yes KERNEL_CONFIGURE=no SHOW_DEBUG=yes But his throws the following error at the end: 🐳|🔨] rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1347) [sender=3.4.1] [🐳|💥] Error 23 occurred in main shell [ at /armbian/lib/functions/logging/runners.sh:276 run_host_command_logged_raw() --> lib/functions/logging/runners.sh:276 run_host_command_logged() --> lib/functions/logging/runners.sh:258 create_image_from_sdcard_rootfs() --> lib/functions/image/rootfs-to-image.sh:80 do_with_logging() --> lib/functions/logging/section-logging.sh:81 build_rootfs_and_image() --> lib/functions/main/rootfs-im

BugGood first issue
1
armbian/build5,361 Tier A · 68 pts
#10537Opened 5 days ago
[Bug]: image for radxa-dragon-q6a has debug kernel

What happened? I saw this message during boot. It says to report it. [ 10.473510] usbcore: registered new interface driver aic_btusb [ 10.485086] ********************************************************** [ 10.485088] ** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE ** [ 10.485089] ** ** [ 10.485090] ** trace_printk() being used. Allocating extra memory. ** [ 10.485091] ** ** [ 10.485091] ** This means that this is a DEBUG kernel and it is ** [ 10.485092] ** unsafe for production use. ** [ 10.485093] ** ** [ 10.485094] ** If you see this message and you are not debugging ** [ 10.485094] ** the kernel, report this immediately to your vendor! ** [ 10.485095] ** ** [ 10.485096] ** NOTICE NOTICE NOTICE NOTICE NO

BugNot framework bugGood first issue
7
armbian/configng101 Tier A · 62 pts
#1000Opened 5 days ago
[Bug]: Wireguard allowed characters is incorrect

What happened? Trying to create peers with names that contain hyphens or underscores does not work. From the README of linuxserver/docker-wireguard, Number of peers to create confs for. Required for server mode. Can also be a list of names: myPC,myPhone,myTablet (alphanumeric only) How to reproduce? Install wireguard through armbian-config Enter a peer name with a hyphen or underscore On which OS are you observing this problem? (for easier diagnosis please provide logs with armbianmonitor -u) Other Code of Conduct I agree to follow this project's Code of Conduct

BugGood first issue
1
wimpysworld/deb-get1,736 Tier A · 60 pts
#1981Opened 5 days ago
App Request: Brave Origin

Is this a new request? I have checked that this app does not already have a pending request, has not previously been declined and does not already exist in deb-get. App Name Brave Origin Download URL https://brave.com/origin/linux/ Website URL https://brave.com/origin/ App Summary Brave Origin is a standalone version of the Brave browser focused on a streamlined, privacy-oriented browsing experience. Brave officially provides brave-origin for Debian, Ubuntu and Linux Mint through its official APT repository. Brave's official installation instructions configure the Brave APT repository and install the brave-origin package The package is maintained and distributed by Brave through its official APT repository, allowing APT to handle subsequent updates.

good first issuenew package
longhorn/longhorn7,921 Tier A · 64 pts
#13820Opened 7 days ago
[IMPROVEMENT] pre-pull-share-manager-image container ignores longhornManager.resources, preventing pod-level memory limits on longhorn-manager

Is your improvement request related to a feature? Please describe Follow-up to #12225, which added longhornManager.resources to the chart (thanks!). The value is applied only to the longhorn-manager container. The hardcoded pre-pull-share-manager-image sidecar in the same DaemonSet pod has no resources and no way to set any: # chart/templates/daemonset-sa.yaml (v1.11.3 and v1.12.1) - name: pre-pull-share-manager-image imagePullPolicy: {{ .Values.image.pullPolicy }} image: ...longhorn-share-manager:... command: ["sh", "-c", "echo share-manager image pulled && sleep infinity"] Kubernetes only assigns a pod-level cgroup memory.max when every container in the pod has a memory limit. With the sidecar unlimited, setting longhornManager.resources.limits.memory still leaves the pod-level cgroup at max. This matters on platforms whose OOM handling ranks pod-level cgroups. For example, the Talos Linux (v1.12+) userspace OOM controller's default ranking protects pods whose pod cgroup has me

good first issuecomponent/longhorn-managerpriority/1kind/improvement
plengauer/Thoth164 Tier A · 66 pts
#4105Opened 8 days ago
refresh_demos: `$GITHUB_EVENT` is not a real variable, so demos are always built against the latest release

Problem The first step of the generate job in .github/workflows/refresh_demos.yml picks which .deb to install: { if [ "$GITHUB_EVENT" = release ]; then cat "$GITHUB_EVENT_PATH"; else curl --header "Authorization: Bearer ${{ github.token }}" https://api.github.com/repos/"$GITHUB_REPOSITORY"/releases/latest; fi; } \ | jq -r '.assets[] | select(.name | endswith("_amd64.deb")) | .url' \ | xargs wget ... -O package.deb GITHUB_EVENT is not a GitHub Actions environment variable. The documented ones are GITHUB_EVENT_NAME (the event) and GITHUB_EVENT_PATH (the payload file). $GITHUB_EVENT expands to the empty string, [ "" = release ] is always false, and the else branch always wins. Consequence: the workflow never uses the assets of the release that triggered it. It always downloads /releases/latest. The then branch and $GITHUB_EVENT_PATH are dead code. Evidence Release v5.60.2 triggered run #87 at 2026-08-22 18:58Z. The README it generated in #4097 reports: "telemetry.sdk.version": "5.61.1

buggood first issue
1
mkasberg/ghostty-ubuntu1,213 Tier A · 55 pts
#231Opened 8 days ago
Tuxedo OS (Debian Testing) incorrectly identified as Ubuntu and fails install.

~$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)" Installing/Updating Ghostty... This installer is not compatible with Ubuntu ~$ cat /etc/os-release NAME="TUXEDO OS" ID=tuxedo ID_LIKE="debian" PRETTY_NAME="TUXEDO OS (Debian base)" HOME_URL="https://tuxedocomputers.com/" SUPPORT_URL="https://support.tuxedocomputers.com/" BUG_REPORT_URL="https://gitlab.com/tuxedocomputers/development/tuxedo_os/os" PRIVACY_POLICY_URL="https://www.tuxedocomputers.com/en/Privacy-policy.tuxedo" VERSION_CODENAME=forky Tuxedo OS is switching from Ubuntu base to Debian Testing. Currently it's in Open Beta. The Ubuntu base for Tuxedo OS will continue to be supported throughout 26.04 at least, so the fix for this needs branching for when ID=tuxedo, as both Ubuntu and Debian will be valid possibilities.

help wantedgood first issue
1
armbian/configng101 Tier A · 62 pts
#988Opened 11 days ago
[Feature Request]: Add PWM Fan Support for OrangePi5

Which feature would you like to have? Description I am using an Orange Pi 5 which has an onboard 2-wire fan header. On the Ubuntu official OS, the fan speed scales dynamically with CPU temperature via PWM. However, on Armbian (tested on both Desktop and CLI versions), the fan spins at 100% full speed constantly from the moment of power-on, causing excessive noise. What I've Tried Tested Armbian Desktop image – same issue. Tested Armbian CLI minimal image – same issue. No fan control interface appears under /sys/class/pwm/ or /sys/class/hwmon/. Original DTB Fan Node I extracted the working fan node from the original device tree for reference. Hopefully this helps with debugging: pwm-fan { compatible = "pwm-fan"; #cooling-cells = <0x02>; pwms = <0x1d1 0x00 0xc350 0x00>; cooling-levels = <0x00 0x32 0x64 0x96 0xc8 0xff>; rockchip,temp-trips = <0xc350 0x01 0xd6d8 0x02 0xea60 0x03 0xfde8 0x04 0x11170 0x05>; status = "okay"; phandle = <0x42a>; }; Request Cou

Feature RequestGood first issueNot armbian-config bug
1
TypedDevs/bashunit424 Tier B · 71 pts
#1325Opened 11 days ago
A test file that fails to source leaks its script temp files

Q A OS macOS 26.5.2 (arm64) Shell & version bash 3.2.57 bashunit version 0.50.0 Summary When a test file fails to source, the test loop skips bashunit::cleanup_script_temp_files. Any bashunit::temp_file the file created at top level before the failure survives the run. The bench loop does call it on the same path, so the two runners disagree. Smallest member of the family the #1318 fix belongs to: an early continue that drops one step of the cleanup block. Current behavior The file is reported as a source failure, and its script temp files stay on disk after the run finishes. How to reproduce badsource_test.sh, valid up to the last line: LEAK="$(bashunit::temp_file leaky)" : >"$LEAK" echo "$LEAK" >"$CLEANUP_MARKER.path" function test_a() { assert_true true; } if [ 1 -eq 1 ] $ CLEANUP_MARKER=/tmp/bu-bs.marker ./bashunit --no-parallel badsource_test.sh Tests: 1 failed, 1 total $ ls "$(cat /tmp/bu-bs.marker.path)" /var/folders/.../bashunit/tmp/..._leaky.uevuXre --paral

buggood first issue
sangrokjung/claude-forge805 Tier B · 70 pts
#81Opened 11 days ago
v4.0 post-release polish: event-count arithmetic + test cleanup trap

Two LOW findings from the v4.0 final re-review — neither introduced by the release's fixes, neither blocking, both worth a small pass. Lifecycle event-count arithmetic doesn't reconcile. README.md:351 and README.ko.md:269 assert 21-event coverage, but the tree yields: settings.json wires 8 distinct events, hooks/examples/ covers 9 (2 overlapping) = 15 distinct; hooks/README.md's own catalog lists 22 events (16 with a shipped handler) and claims 27 total while 22 + 6 spec-only = 28. Reconcile hooks/README.md's catalog first, then re-derive the three READMEs' counts from that single source. scripts/tests/test_s5_hooks.sh leaves artifacts. No cleanup trap: its mktemp WORK dir and the run's /tmp/claude-loop-detect-* and /tmp/auto-verify-fix-* state files survive every invocation, and CI now runs the suite on every push. Suggested fix: add an EXIT trap that removes the WORK directory and the RUN_ID-scoped /tmp state files. 🤖 Generated with Claude Code

good first issue
armbian/build5,361 Tier A · 68 pts
#10476Opened 11 days ago
[Bug]: Luckfox Nova doesn't boot, SPL panics with No serial driver found

What happened? Expected: the board boots. Actual: the board reset-loops. Serial console shows repeatedly: DDR V2.07 6ede97a868 wesley.yao 22/11/29-19:27:02 08 REG2C: 0x00000031, 0x00000031 In 589MHz DDR3 Col=10 Bank=3 Row=15 Size=512MB OUT: sdram_init finish. No serial driver found resetting ... I got it working with the help of an LLM, I verified each step on hardware and this is the summary I got from it: Cause. &uart4 in rk3308-luckfox-nova-u-boot.dtsi is tagged u-boot,dm-pre-reloc. U-Boot removed pre-schema tag support in v2026.01 (6d04828b4520), which dropped the CONFIG_OF_TAG_MIGRATE block in scripts/Makefile.lib that passed those tags to fdtgrep. The node is therefore stripped from the SPL device tree, and stdout-path = "serial4" resolves to nothing. Extracted from the trixie image (idbloader at sector 64, DTB at offset 111304, 3220 bytes) — 26 nodes, no serial node, no serial4 alias: aliases { mmc0 = "/mmc@ff490000"; mmc1 = "/mmc@ff480000"; }; chosen {

BugGood first issueboot
1
sangrokjung/claude-forge805 Tier B · 70 pts
#75Opened 11 days ago
v4.1 candidate: karpathy-check (overbuild/scope-drift audit)

Deferred from the v4.0 survey (theme C). A review lens orthogonal to code-review: did we build MORE than asked, is complexity proportionate, did scope drift mid-task. Cheap to port, pairs well with the adversarial loop. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code

enhancementgood first issue
sangrokjung/claude-forge805 Tier B · 70 pts
#74Opened 11 days ago
v4.1 candidate: sprint-contract (DoD pre-agreement)

Deferred from the v4.0 survey (theme C). Lock a definition-of-done before implementation starts; verify-agent then judges each DoD item PASS/FAIL/MANUAL at the end. Fills the gap between /plan and /verify-loop. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code

enhancementgood first issue
sangrokjung/claude-forge805 Tier B · 70 pts
#73Opened 11 days ago
v4.1 candidate: dry-run masked preview

Deferred from the v4.0 survey (theme D, effort S). A stdlib-only helper that renders any outward mutation (send, publish, bid, env change) as a secret-masked request shape for review before firing. Pattern + ~80-line script. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code

enhancementgood first issue
sangrokjung/claude-forge805 Tier B · 70 pts
#72Opened 11 days ago
v4.1 candidate: git hygiene trio (pull-main / worktree collision detect / push-before-ci)

Deferred from the v4.0 survey (theme G, all effort S). pull-main: conflict-safe main→dev merge with auto-backup branch and rollback matrix. worktree-collision-detect: SessionStart warning when two sessions share one working tree. push-before-ci: run CI-identical commands locally before push (includes the bracket-glob false-pass trap writeup). Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code

enhancementgood first issue
sangrokjung/claude-forge805 Tier B · 70 pts
#71Opened 11 days ago
v4.1 candidate: a11y-reviewer + performance-reviewer agent pair

Deferred from the v4.0 survey (theme I). WCAG 2.1 AA audit lane and Core-Web-Vitals/Lighthouse lane with numeric-evidence-required verdicts. Needs only MCP tool-name remapping to this repo's chrome-devtools server. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code

enhancementgood first issue
sangrokjung/claude-forge805 Tier B · 70 pts
#66Opened 11 days ago
v4.1 candidate: notification policy set

Deferred from the v4.0 survey (theme A). Four-layer notification storm prevention: mandatory cooldown via libs/hook-guard.sh (ships in v4.0), no timeout-0 persistent notifications, layered dedup keys, webhook token guards — plus a rate watchdog that kills runaway notifier processes. Motivated by a real incident: 228 terminal-notifier processes spawned in 12 minutes. Survey rationale archive: the maintainer's internal survey report (2026-08-18) ranked and scoped all deferred sets; ask in comments if you want the full rationale for this one. 🤖 Generated with Claude Code

enhancementgood first issue
dianlight/hassio-addons187 Tier B · 63 pts
#730Opened 11 days ago
❓ [addon] why is disabling protection mode required?

Addon SambaNAS Your request I’m using the original Sambanas, and looked into the successor Sambanas2. I need to disable protection mode in order to add shares (not needed for the original Sambanas). What is the reason? I really don’t like that.

good first issue[ SambaNas2 ]
2
armbian/configng101 Tier A · 62 pts
#987Opened 12 days ago
[Bug]: armbian-install clear /etc and /root

What happened? Hi, When i use armbian-install to install current configured system to the emmc, it's installed ok without errors, but if i mount just installed emmc i see no files on /root and just /etc/fstab Can someone help where to fix this behavior? Also if this will be future of armbian-install then can i request a switch added to just copy running system as it was before? How to reproduce? This is latest debian trixie version for Olimex A20 Lime2 Just apt update and apt upgrade Add test files in /root and /etc/netplan/. Run armbian-install Mount just installed emmc into /mnt On which OS are you observing this problem? (for easier diagnosis please provide logs with armbianmonitor -u) https://paste.armbian.com/asoduwolun Other Code of Conduct I agree to follow this project's Code of Conduct

BugGood first issue
3
wimpysworld/deb-get1,736 Tier A · 60 pts
#1976Opened 12 days ago
App Request: Nextpad++

Is this a new request? I have checked that this app does not already have a pending request, has not previously been declined and does not already exist in deb-get. App Name Nextpad++ Download URL https://github.com/nextpad-plus-plus/nextpad-plus-plus-linux/releases Website URL https://github.com/nextpad-plus-plus/nextpad-plus-plus-linux App Summary Nextpad++ for Linux is the full native port of Notepad++ for the Linux desktop. It's not an Electron wrapper, not a Wine bottle, not Flatpak, not GNUstep not a half-finished clone. A real GTK4 application built on the same Scintilla/Lexilla engine as Notepad++ itself, carrying the same version number as the macOS edition because it carries the same features: the two ports were developed against each other line by line, dialog by dialog, until the parity audit ran out of things to list. (Note Nextpad++ is a full port of Notepad++ for Windows) The launch pitch, in numbers: 5 MB download. ~32 MB on disk. Starts in about a second. Your who

good first issuenew package
shibco/ableton-linux450 Tier A · 58 pts
#229Opened 12 days ago
installation fails during `vcrun2022` setup

indra ΘΔ 🐾 BOT installing live standard 12.4.3 fails while setting up the wine prefix. the failure occurs during the vcrun2022 setup. ------------------------------------------------------ warning: Running /home/unsoppingdrycat/.local/opt/wine-d2d1-nspa-11.13/bin/wineserver -w. This will hang until all wine processes in prefix=/home/unsoppingdrycat/..wine-ableton.prefix-stage.uNdubq terminate ------------------------------------------------------ Executing /home/unsoppingdrycat/.local/opt/wine-d2d1-nspa-11.13/bin/wine C:\windows\syswow64\regedit.exe /S C:\windows\Temp\_webdings\_register-font.reg Executing /home/unsoppingdrycat/.local/opt/wine-d2d1-nspa-11.13/bin/wine C:\windows\regedit.exe /S C:\windows\Temp\_webdings\_register-font.reg Executing cp /home/unsoppingdrycat/..wine-ableton.prefix-stage.uNdubq/dosdevices/c:/windows/temp/_webdings/_register-font.reg /tmp/winetricks.M4E0bQG0/_reg_405b24a4_103561.reg Executing /home/unsoppingdrycat/.local/opt/wine-d2d1-nspa-11.13/bin/w

installerhelp wanted
2
wimpysworld/deb-get1,736 Tier A · 60 pts
#1973Opened 14 days ago
App Request: Ghost Downloader

Is this a new request? I have checked that this app does not already have a pending request, has not previously been declined and does not already exist in deb-get. App Name Ghost Downloader Download URL https://github.com/XiaoYouChR/Ghost-Downloader-3/releases Website URL https://gd.xychr.com/ App Summary AI-powered next-generation cross-platform multithreaded downloade. Features: IDM-style intelligent chunking⚡ without requiring file merging, plus AI smart acceleration 🚀 Frees UI resources when minimized to tray🍃 — minimal memory footprint in the background Supports HTTP, Magnet / BT, FTP, M3U8, MPEG-DASH, eD2k and more 🌐 Emulates real-browser TLS fingerprints🥷 so downloads are less likely to be blocked by anti-bot checks Parses YouTube▶️ and Bilibili videos — playlists, up to 4K/HDR, subtitles and login supported Dedicated parsers for GitHub🐙 releases and HuggingFace🤗 models with mirror acceleration Records M3U8 live streams📺 wit

good first issuenew package
armbian/configng101 Tier A · 62 pts
#984Opened 14 days ago
[Bug]: Allwinner A64 / sun50i-a64 (Pine64) - Hardware Crypto Engine (`sun8i-ce`) corrupts OpenSSH key exchanges and RSA host key generation

What happened? Summary Allwinner A64 / sun50i-a64 (Pine64) - Hardware Crypto Engine (sun8i-ce) corrupts OpenSSH key exchanges and RSA host key generation Board / OS Details Board: Pine64 (Allwinner A64 / sun50i-a64) Architecture: aarch64 (sunxi64) Kernel Branch: Current (Linux 6.x) Target OS: Ubuntu Noble / Debian Trixie (Armbian Current) Description On modern Armbian images for the Pine64 (sun50i-a64), the Allwinner hardware crypto engine driver (sun8i_ce / CONFIG_CRYPTO_DEV_SUN8I_CE) causes silent data corruption during cryptographic operations. Because OpenSSH 9.x+ utilizes crypto offloading for key exchange (KEX), SHA hashing, and signature validation, incoming SSH sessions fail immediately during handshake or authentication with errors such as: ssh_dispatch_run_fatal: Connection to <IP> port 22: message authentication code incorrect ssh_dispatch_run_fatal: Connection to <IP> port 22: incorrect signature accumulate_host_timing_secret: encode ssh-rsa key: unexpected internal erro

BugGood first issueNot armbian-config bug
2
tuna-os/tunaOS53 Tier A · 70 pts
#1800Opened 14 days ago
[outreach] good first issue: unit tests for scripts/corral-build.sh (VM build orchestration)

Good First Issue Repo: tunaos · Area: scripts / Corral · Skill: bash + BATS (mocked tooling, no VMs) scripts/corral-build.sh drives Corral VM builds (used by boot-gate-matrix.sh for the boot-gate health checks). It has zero test coverage. Scope BATS tests with corral/podman mocked as stub binaries: argument parsing and required-arg errors build-dir creation/hygiene (no stale state leaks) command failure propagation (a failed build step aborts with the right code) idempotency — re-running on an existing build dir behaves sanely Acceptance tests/bats/test_corral_build.bats green in CI No behavior change to the script; DCO-signed commit Part of the Hacktoberfest 2026 core-code pool (see #1780) Related: #1599 (homelab/Corral story), #1780 Filed by outreach agent (ACMM L6 — full mode)

good first issuehelp wantedcommunityoutreach
tuna-os/tunaOS53 Tier A · 70 pts
#1799Opened 14 days ago
[outreach] good first issue: unit tests for .github/scripts/update-build-status.sh (README build matrix)

Good First Issue Repo: tunaos · Area: scripts / build-status · Skill: bash + BATS (fixture-based, no API) .github/scripts/update-build-status.sh refreshes the README build-status matrix (the github-actions bot docs: refresh build matrix status commits, e.g. #1749). It has zero test coverage. Scope BATS tests over fixture inputs — no GitHub API calls: cell classification: green / red / unbuilt / unknown for variant×arch cells table render determinism (same fixture ⇒ byte-identical output) error handling: missing/invalid status input, exit codes flag/arg handling and defaults Acceptance tests/bats/test_update_build_status.bats green in CI Render output matches the existing README section for the same fixture No behavior change to the script; DCO-signed commit Part of the Hacktoberfest 2026 core-code pool (see #1780) Related: #1749, #1780 Filed by outreach agent (ACMM L6 — full mode)

good first issuehelp wantedcommunityoutreach
tuna-os/tunaOS53 Tier A · 70 pts
#1798Opened 14 days ago
[outreach] good first issue: unit tests for scripts/boot-gate-matrix.sh (parallel gate fan-out)

Good First Issue Repo: tunaos · Area: scripts / CI health gates · Skill: bash + BATS (no infra needed) scripts/boot-gate-matrix.sh fans scripts/boot-gate.sh across the KubeVirt cluster with bounded concurrency, round-robining VMs across nodes; the matrix passes only if every gate passes. It has zero test coverage today (only boot-gate resume + ownership are tested). Scope BATS tests for the pure logic — no live cluster required (mock corral/SSH with stubs): bare-variant → default flavor expansion (GATE_FLAVORS), comma/space lists concurrency budgeting (GATE_CONCURRENCY, bounded in-flight gates) node round-robin distribution across GATE_NODES failure aggregation — any gate fails ⇒ matrix fails; exit codes env-var defaults and invalid-input handling Acceptance tests/bats/test_boot_gate_matrix.bats green in CI (model: test_boot_gate_resume.bats) No behavior change to the script; DCO-signed commit Part of the Hacktoberfest 2026 core-code pool (see #1780) Related: #1762 (varia

good first issuehelp wantedcommunityoutreach
mos-nas/mos-releases419 Tier B · 56 pts
#59Opened 15 days ago
Kinks with IPv6 support

First up loving this project. Despite the clear rough edges, I really like the model, and I'm even hoping to be able to contribute some code at some point in the future. I've had some issues with using IPv6, specifically getting my interfaces to configure with SLAAC, and accessing the WebUI over IPv6. The WebUI issue was straight forward enough, Nginx by default only listens on IPv4 when configured with Listen $PORT. I solved this by editing system.json and setting webui.port.http and webui.port.https to [::]:80 ipv6only=off and [::]:443 ipv6only=off respectively. This works, but it's not ideal from a UX perspective. If I was going to build something to configure IPv6 for Nginx, I probably would go with 4 declarations of Listen, 2 for IPv4 and 2 for IPv6. The SLAAC issue took a bit more figuring, but it all comes down to the accept_ra option. With IPv6 enabled and IPv6 DHCP disabled on eth0, the expected behaviour is for the interface to automatically configure with SLAAC, however I fo

bugenhancementhelp wanted
4
wimpysworld/deb-get1,736 Tier A · 60 pts
#1971Opened 15 days ago
App Request: MetaClean

Is this a new request? I have checked that this app does not already have a pending request, has not previously been declined and does not already exist in deb-get. App Name MetaClean Download URL https://github.com/Moresyl/metaclean/releases Website URL https://github.com/Moresyl/metaclean App Summary MetaClean is a free, open-source desktop application for removing metadata from images, PDFs, Office documents, and text files entirely offline. It publishes an upstream-maintained stable amd64 .deb on each GitHub Release. Disclosure: I am the project maintainer.

good first issuenew package
#158Opened 17 days ago
[DevicePort] Redmi 7 Device Request

Device Name Redmi 7 Device Codename onc ROM Name LineageOS ROM Version 23.2 Android Version 16 Kernel Source Link https://gitlab.com/hadadrjt/android_kernel_xiaomi_onc Kernel Source Branch lineage-23.2 Kernel Version 5.10.101

help wanted

Top Shell Repositories with Beginner Issues (20)

Updated Daily via GitHub GraphQL
Antiz96
arch-update
Antiz96/arch-update
SElite
436·Shell

An interactive update notifier & applier for Arch Linux that assists you with important pre / post update tasks (including a systray applet and extensive CLI).

#arch#arch-linux#arch-update
94%
Merge Rate
6h
Review Time
88%
1st-Timers
1 GFI
Scorecard
itzg
docker-minecraft-server
itzg/docker-minecraft-server
SElite
14.2k·Shell

Docker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and more at startup

#docker-image#dockerfiles#hacktoberfest
88%
Merge Rate
11h
Review Time
91%
1st-Timers
9 GFI
Scorecard
bigstack-oss
cubecos
bigstack-oss/cubecos
SElite
159·Shell

Open-source cloud native platform that automates and simplifies the deployment of virtualization, Kubernetes, and OpenStack infrastructure.

#ceph#cloud#cloudnative
88%
Merge Rate
15h
Review Time
100%
1st-Timers
12 GFI
Scorecard
MotherofallVPNs
MoaV
MotherofallVPNs/MoaV
SElite
424·Shell

Mother of all VPNs

#circumvention-tool#digital-rights#infrastructure
96%
Merge Rate
2d
Review Time
75%
1st-Timers
2 GFI
Scorecard
haikuports
haikuports
haikuports/haikuports
SElite
524·Shell

Software ports for the Haiku operating system.

#haiku#haiku-os#package-manager
91%
Merge Rate
1d
Review Time
74%
1st-Timers
1 GFI
Scorecard
pkgforge-dev
Anylinux-AppImages
pkgforge-dev/Anylinux-AppImages
SElite
230·Shell

AppImages That Truly Work On Any Linux System (Even musl-libc and non-FHS systems)

94%
Merge Rate
6d
Review Time
93%
1st-Timers
3 GFI
Scorecard
jvm-repo-rebuild
reproducible-central
jvm-repo-rebuild/reproducible-central
SElite
145·Shell

Reproducible Central: rebuild instructions for artifacts published to (Maven) Central Repository

96%
Merge Rate
13d
Review Time
80%
1st-Timers
1 GFI
Scorecard
sangrokjung
claude-forge
sangrokjung/claude-forge
BSolid
805·Shell

Supercharge Claude Code with 11 AI agents, 36 commands & 15 skills — the claude-code plugin framework inspired by oh-my-zsh. 6-layer security hooks included. 5-min install.

#agents#ai-assistant#anthropic
88%
Merge Rate
<1h
Review Time
100%
1st-Timers
12 GFI
Scorecard
tuna-os
tunaOS
tuna-os/tunaOS
AWelcoming
53·Shell

Bringing a modern cloud-native experience to the Enterprise Linux Desktop

80%
Merge Rate
15h
Review Time
100%
1st-Timers
3 GFI
Scorecard
AOSC-Dev
aosc-os-abbs
AOSC-Dev/aosc-os-abbs
AWelcoming
187·Shell

ABBS/ACBS tree for AOSC OS package metadata, build configuration, scripts, and patches

#abbs#acbs#aosc-os
83%
Merge Rate
21h
Review Time
69%
1st-Timers
1 GFI
Scorecard
armbian
build
armbian/build
AWelcoming
5.4k·Shell

The official build framework for the Armbian Linux distribution. This repository contains the complete toolchain and scripts required to compile custom OS images from source, including kernel configuration, U-Boot handling, and board-specific tweaks for various ARM and ARM64 single-board computers.

#arm#debian#framework
85%
Merge Rate
2d
Review Time
89%
1st-Timers
11 GFI
Scorecard
nextbsd-redux
nextbsd
nextbsd-redux/nextbsd
BSolid
172·Shell

No repository description available.

94%
Merge Rate
4d
Review Time
100%
1st-Timers
1 GFI
Scorecard
plengauer
Thoth
plengauer/Thoth
AWelcoming
164·Shell

No repository description available.

#agent#bash#injection
81%
Merge Rate
11h
Review Time
60%
1st-Timers
3 GFI
Scorecard
ublue-os
aurora
ublue-os/aurora
AWelcoming
769·Shell

The ultimate productivity workstation

#bootc#fedora#kde
85%
Merge Rate
15h
Review Time
75%
1st-Timers
2 GFI
Scorecard
zizmorcore
zizmor-action
zizmorcore/zizmor-action
AWelcoming
153·Shell

Run zizmor from GitHub Actions!

#github-actions#static-analysis#zizmor
91%
Merge Rate
2d
Review Time
100%
1st-Timers
1 GFI
Scorecard
fujibee
agmsg
fujibee/agmsg
AWelcoming
1.5k·Shell

Cross-vendor messaging for CLI AI coding agents — let Claude Code, Codex, Gemini & Copilot talk to each other in one team. Bash + SQLite, no daemon, no framework.

#agent-communication#agent-teams#agentic
81%
Merge Rate
21h
Review Time
41%
1st-Timers
1 GFI
Scorecard
yuting0624
antigravity-for-claude-code
yuting0624/antigravity-for-claude-code
AWelcoming
293·Shell

Claude Code plugin: run the Antigravity CLI (Gemini) as a collaborating sub-agent with intelligent model routing across the SDLC. Community project; not affiliated with Google/Anthropic.

#agy-cli#antigravity-cli#claude-code
88%
Merge Rate
3d
Review Time
100%
1st-Timers
4 GFI
Scorecard
dan-snelson
DDM-OS-Reminder
dan-snelson/DDM-OS-Reminder
BSolid
110·Shell

Mac Admins’ new favorite, MDM-agnostic, “set-it-and-forget-it” end-user messaging for Apple’s Declarative Device Management-enforced macOS update deadlines

87%
Merge Rate
18h
Review Time
100%
1st-Timers
1 GFI
Scorecard
longhorn
longhorn
longhorn/longhorn
AWelcoming
7.9k·Shell

Cloud-Native distributed storage built on and for Kubernetes

#cncf#distributed-systems#high-availability
77%
Merge Rate
1d
Review Time
69%
1st-Timers
8 GFI
Scorecard
itzg
docker-minecraft-bedrock-server
itzg/docker-minecraft-bedrock-server
BSolid
1.8k·Shell

Containerized Minecraft Bedrock Dedicated Server with selectable version

#docker-image#hacktoberfest#minecraft
100%
Merge Rate
8d
Review Time
100%
1st-Timers
2 GFI
Scorecard

How to make your first Shell open-source pull request

Finding approachable Good First Issues in Shell allows you to build real-world software engineering experience. Instead of submitting PRs to abandoned repositories, GetMerged verifies maintainer review speeds and first-timer acceptance rates before you write a single line of code.

Select any issue above to claim it directly on GitHub, or click a repository to inspect full maintainer review turnaround metrics and triage guidance!

Get this week's top welcoming repos + fresh Good First Issues for Shell

Free weekly email, scoped to Shell. No account needed - confirm once and unsubscribe anytime.