Good First Issues in Kotlin
Explore curated starter issues in high-scoring Kotlin repositories. Every listed issue belongs to a welcoming repository scored by C-Rank™ on PR merge rates, review responsiveness, and first-timer acceptance.
Arm Issue Sniper for fresh Kotlin 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 IssuesA Reduce the scrollbar length for these tabs as they are currently too long. Make all 3 scrollbars the same length for consistency: Apps Patch Bundles Patch Profiles B The Tools tab is missing a scrollbar so display one when scrolling and ensure it has the same length as the scrollbar in the 3 tabs above for consistency: Screen_Recording_20261012_190210.mp4
Feature request or question Is it possible to add support for Android 5.1.1? A great many car head units run on older versions of Android. Device information and additional context Jacinto 6 DRA745 2 Core, 2Gb RAM, Android 5.1.1
it would be nice to have a source to Anki default values Originally posted by @BrayanDSO in #22430 (comment) Search https://github.com/ankitects/ for the default value and link on the relevant extension method on :anki-common. Ideally, the value will be found in rslib, but you may find it in the Python. Note: some values may not have a default ("FSRS"), in which case, flag these for our review.
Removed in #22438 Should likely be implemented instead of being removed
1 Below Use latest, add a toggle that allows to select a specific bundle version. When the toggle is enabled, it should un-grey out another option (maybe named "Select version"). Tapping "Select version" should open a dialog window listing all available bundle versions (both dev and stable) with a radio button on the right of each version number to select one. 2 Similarly to #630 and so f395, when this new toggle is enabled, visually disable and grey out both Use pre-releases and Use latest, while preserving and restoring their previous state when the new toggle is disabled.
While loading the icon of a book in the catalogue, thexdefault icon is displayed. This is wrong, the default icon should be displayed only if there is no book favicon or if the book favicon somehow fails to be loaded.
...and I think the GitHub explore icon would be great
1 Similarly to #630 and so f395, visually disable and grey out Use pre-releases when Use latest is enabled, while preserving and restoring its previous state when Use latest is disabled: 2 For downloaders, preserve and restore Pre-release previous state when Latest is disabled: Screen_Recording_20261011_200340.mp4 3 Also for downloaders, like in the runtimes video, grey out the Pre-release text and its description when Latest is enabled: Screen_Recording_20261011_204444.mp4 4 For runtimes, preserve and restore Pre-release previous state when Latest is disabled: Screen_Recording_20261011_200251.mp4 5 Like the Only while charging setting in the video below, grey out the Install automatically with Shizuku text and its description when Automatically repatch apps is disabled: Screen_Recording_20261011_225910.mp4 6 Similarly, grey out the Check
https://www.reddit.com/r/Anki/comments/1x38vwb/bug_anki_whiteboard/
Pre-flight checks I have searched the existing issues and found no duplicate This is a feature request, not a bug report The problem Currently if dark mode is turned on, it seems you can end up with rather bright screensavers. Proposed solution I wondered if Ava could request "dark" images from its backend to use for the screensaver when dark mode is enabled? Feature area Screensaver Target Android versions All supported versions Mockup / reference No response Additional context No response
Pre-flight checks I have searched the existing issues and found no duplicate I am running the latest Ava release Bug summary On two Ava 0.7.8 tablets, Continuous Conversation caused a normal Home Assistant Assist reply to be followed by unintended new requests, including one transcript matching part of Ava's own spoken answer. Disabling Continuous Conversation stopped the rapid follow-up chain in subsequent tests on both. Separately, the Bedroom tablet's listening-like glow remained visible after a normal answer even with Continuous Conversation off and the HA satellite idle. Steps to reproduce Use Ava 0.7.8 as an HA Assist satellite with a wake word and Continuous Conversation enabled. The exact end-condition selection was not recorded. Ask a read-only question such as “What time is it?” once, then do not give another command. Ava transcribes and answers the first question correctly. Observe additional Assist runs without another intended command. On Bedroom, an answer like
Pre-flight checks I have searched the existing issues and found no duplicate I am running the latest Ava release Bug summary Starting video playback in another app (Netflix, Emby) on the tablet always ends with that app being paused about 4-5 seconds later. It does not matter which app plays. Ava requests AUDIOFOCUS_GAIN again about 2 s after the other app, which takes the focus back and makes the other app pause. The log line SendspinAudioFocus: AUDIOFOCUS_LOSS - will re-acquire from playout appears right before Ava's request. Steps to reproduce Ava Pro 0.7.8 running with "Music Assistant player" (Sendspin) enabled, playing and pause it (with the overlay) AVA has accessibility service permissions and device admin permissions Stop Screensaver by touch, diable browser by automation. Open Netflix (or Emby) from ava launcher on the same tablet and start a video. Video starts, then pauses by itself after about 4-5 seconds. Optional: adb shell dumpsys audio | grep -i requestAudioFocus
I suspect knowing the following would make it easier to understand the linked issue: System locale AnkiDroid language Backend language (if available) Add a single line to Copy Debug Info with these
My suggestion its that can be put the new sprites / atlas like this sprite:blocks:block/stone in texts.
Pre-flight checks I have searched the existing issues and found no duplicate This is a feature request, not a bug report The problem Follow-up to #232. Ava Pro is active as Device Admin on my devices, but the in-app self-update still shows the system install dialog and needs a manual confirmation. In a company MDM app I wrote, the same flow installs silently. The only difference I see is that the MDM app is Device Owner, not just Device Admin. Question: Are Device Owner rights required for a silent self-update? If yes, could Ava Pro support being provisioned as Device Owner (e.g. via adb shell dpm set-device-owner) and then use the silent PackageInstaller path? Steps to reproduce Install Ava Pro on a device running LineageOS 18.1 (Android 11), e.g. Amazon Echo Show. Grant Ava Pro Device Admin rights. Trigger the self-update from Ava Pro. The system package installer dialog appears and needs manual confirmation. Proposed solution Expected: The update is installed in the background
The back stack is shared with the Deck Picker dialogs This caused #22388 Side-pane navigation should be handled by a host fragment (+ child fragment manager).
Pre-flight checks I have searched the existing issues and found no duplicate I am running the latest Ava release Bug summary First, thx for making most ov AVA pro open source and for your efforts!! Follow-up to #231. In 0.7.8 the new option Show after screen on (Ava Settings -> Screensaver -> Behavior & Wake) is enabled, but the screensaver is never shown when the screen turns on. The page that was visible before stays on screen. Steps to reproduce Update to Ava Pro 0.7.8. Enable Ava Settings -> Screensaver -> Behavior & Wake -> Show after screen on. Turn the screen off, then turn it on again via Home Assistant: lock.unlock on the panel's lock entity, or switch.turn_on on the panel's screen switch. Screen turns on. Expected vs actual behavior Expected behavior When the screen is turned on (woken from Home Assistant with lock... or switch_screen entity, not by touch or proximity), the screensaver appears and the page underneath stays as it was. Actual behavior The screen turns
Phone and glasses apps update independently (ADR 0002), so a newer phone may send message types an older glasses build doesn't know. Unit test: parsing an unknown type code doesn't throw and is dropped with a log line Same on the phone side for unknown glasses messages Fix the parser if either test fails Generated by Claude Code
Optional with Apache-2.0, but it makes the license clear when files are copied out of the repo. Add // SPDX-License-Identifier: Apache-2.0 as the first line of every .kt and .kts file in common, phone-app and glasses-app Do it in a single mechanical commit so it is easy to review Generated by Claude Code
doc/SYSTEM_ONE_AGENTS_RESEARCH.md is written only in Traditional Chinese. English is the primary language for this reference architecture. Translate into English, keeping links, code names and numbers exactly as they are Move the Chinese original to doc/zh-TW/SYSTEM_ONE_AGENTS_RESEARCH.md Add a language switch line at the top of both files, like doc/ARCHITECTURE.md has Research notes; mark Jev, Laya and Agents as experimental at the top. Generated by Claude Code
doc/DEVICE_SMOKE_TEST.md is written only in Traditional Chinese. English is the primary language for this reference architecture. Translate into English, keeping links, code names and numbers exactly as they are Move the Chinese original to doc/zh-TW/DEVICE_SMOKE_TEST.md Add a language switch line at the top of both files, like doc/ARCHITECTURE.md has Keep the recorded results as they are; only translate. Generated by Claude Code
doc/DEVICE_INSTALLATION.md is written only in Traditional Chinese. English is the primary language for this reference architecture. Translate into English, keeping links, code names and numbers exactly as they are Move the Chinese original to doc/zh-TW/DEVICE_INSTALLATION.md Add a language switch line at the top of both files, like doc/ARCHITECTURE.md has Needed by anyone trying the app on real glasses. Generated by Claude Code
While "back to top" is black and looks different. What are the rational s behind this discrepancies?
With the ZIM welcome page. I have just sent the diagnostic per E-Mail
Expand NetworkPlugin with networkCapabilities() or linkSpeed() emitting cellular generations (4G LTE, 5G NR, Wi-Fi 6) and estimated downstream/upstream bandwidth in Mbps.
Expected Behavior Something like this: internal class AuthenticationSingleSignOnManagerImpl internal constructor(/*...*/) Should be marked by RedundantVisibilityModifier internal constructor -> constructor. The constructor is also unnecessary once you remove the visibility in this sample but we shouldn't care about that here, other rules take care of that. Observed Behavior No issue raised on that code Your Environment Version of detekt used: 2.0.0-alpha6
Problem Description Anyone else being frustrated by the Policy Picker - all policies except new branches can be double-clicked? Desired Solution I've got it coded: https://github.com/yairm210/Unciv/compare/master...SomeTroglodyte:PolicyBranchDoubleClick?expand=1 ... but it relies on delaying the confirmation pop-up and corresponding guards, which might irk single-clickers, so unless there is more interest I'm not opening the PR. Alternative Approaches ignore
1 When scrolling up or down the list of languages, display a scrollbar: 2 Order the languages alphabetically, but keep Use device language at the top:
Like in an article, because thexlist can be very long!
Top Kotlin Repositories with Beginner Issues (20)
Updated Daily via GitHub GraphQLEssential tools and mods for Android nerds
No repository description available.
AI desktop app for chat, RAG, Skills, MCP tools, and agents. Support multiple LLMs (Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM, Gemini, OpenRouter)
AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
Native desktop platform for the JVM. Compose Multiplatform apps with real OS integration — native window decorations, notifications, taskbar and dock, code signing, installers, auto-update — packaged for macOS, Windows and Linux from a single Gradle DSL. Runs on the JVM or as a GraalVM native image.
The Pachli Android app
An implementation of the OpenTelemetry specification as a Kotlin Multiplatform Library
Your Spotify + YouTube Music library & daily mixes. Free and open source forever.
Private photo vault for Android
An alternative frontend for YouTube, for Android.
Bring the native Dynamic Island experience to HyperOS. Bridges android notifications into HyperIslands.
Kotlin DataFrame: typesafe in-memory structured data processing for JVM
A Sentry SDK for Java, Android and other JVM languages.
Kotlin Symbol Processing API
An Android native video player
A multiplatform, compile-time dependency injection framework for Kotlin
Browse Mastodon, Bluesky, X, Misskey, Nostr, Pixiv, Fanbox and RSS all in one app. One timeline, all your accounts, cross-post everywhere.
Open-source Android/Desktop remake of Civ V
蓝鲸持续集成平台(蓝盾)
LeanType is an Open-source keyboard, fork of HeliBoard with additional features and customisation
How to make your first Kotlin open-source pull request
Finding approachable Good First Issues in Kotlin 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 Kotlin
Free weekly email, scoped to Kotlin. No account needed - confirm once and unsubscribe anytime.