Scala good first issues

112 open Scala issues currently match the default 10+ star filter. Scored difficulty: 5,943 at 1/5, 8,722 at 2/5, 12,675 at 3/5, 12,093 at 4/5, 856 at 5/5. This hub uses the same feed as the homepage, limited to repositories whose GitHub language is Scala.

All languages · Browse projects · How to find good first issues · Hacktoberfest 2026

Active projects

Unique repos with open help-wanted issues updated in the last 30 days

Showing 30 of ~112 matching filters (Scala · 10+ stars)

List

Establish nomenclature style guide and audit operator names for clarity

AI summary

This issue addresses inconsistencies in Comet's documentation and operator naming, particularly around the term 'native'. The goal is to establish a clear nomenclature style guide to differentiate between Rust-implemented components, operations within the Comet pipeline, and fully Rust scans, ensuring better clarity as Comet's value proposition shifts towards end-to-end Arrow-native data processing.

documentationgood first issuepriority:low
1.2K
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add tests for the HttpResponse extensions: ensureSuccess bounds, toJson and mapServiceError

AI summary

This issue requests the addition of comprehensive unit tests for three extension methods in `HttpResponse`: `ensureSuccess`, `toJson`, and `mapServiceError`. The tests should cover various success and error scenarios for `ensureSuccess`, different body types for `toJson`, and the rewrapping of `ServiceError` for `mapServiceError`.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] EnvCheckPolicies passes when every policy is skipped (for example --env=production)

AI summary

The `EnvCheckPolicies` tool currently passes with an exit code of 0 even when all configured policies are skipped due to environment mismatches. This issue proposes modifying the tool to detect when all policies are skipped and instead return an exit code of 2, along with a descriptive message, to indicate that no checks were actually performed.

enhancementhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] CheckPolicies: refuse an unknown --env, and map dev-sandbox to the dev environment

AI summary

This issue proposes to improve the `CheckPolicies` tool by making its `--env` argument more robust. Currently, it silently accepts unknown environment names and maps them to `Prod`. The goal is to make it refuse unknown `--env` values with an error message, similar to how it handles unknown presets, and to correctly map the `dev-sandbox` alias to the `Dev` environment and the `devSandbox` policy.

enhancementhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add Scaladoc to Llm4sHttpClient's request methods and the HttpResponse extensions

AI summary

This issue requests adding Scaladoc documentation to several request methods in `Llm4sHttpClient`, including details about parameters, default timeouts, and error handling. It also asks for documentation for `JsonHttpResponse` and two extension methods, `toJson` and `mapServiceError`, clarifying their behavior and parameters.

documentationhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add Scaladoc to the abstract methods of the Tracing contract

AI summary

This issue requests adding Scaladoc documentation to the abstract methods of the `Tracing` contract in the `llm4s` project. The goal is to clarify the purpose of each method, its parameters, how built-in backends map to `TraceEvent`s, and the meaning of potential `Left` results. Additionally, brief comments are needed for `TracingComposer` and `TracingMode` objects.

documentationhelp wantedgood first issue
247
Difficulty
1/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add Scaladoc to ModelRegistryService and its factories

AI summary

This issue requests adding Scaladoc documentation to the `ModelRegistryService` trait and its companion object in the llm4s project. The goal is to clarify the behavior of its methods, including how model lookups are performed, error handling for searches, and the different ways to load model configurations, making the API more understandable for users.

documentationhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add tests for ModelRegistryService lookup order and its error paths

AI summary

This issue requests the addition of new tests for the `ModelRegistryService` in Scala. The tests should cover specific error paths, such as when no models are found for a given capability, mode, or provider. Additionally, tests for case-insensitive provider matching, unique provider listing, and various lookup scenarios (exact, case-insensitive, prefixed, substring, and whitespace handling) are required. The goal is to ensure the `ModelRegistryService` behaves as documented across all its functionalities.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add tests for Conversation.addMessage, addMessages, filterByRole and ToolMessage.findToolCallName

AI summary

This issue requests adding unit tests for several methods within the `Conversation` and `ToolMessage` classes in the `llmconnect` library. Specifically, it aims to test `addMessage`, `addMessages`, `filterByRole` for `Conversation`, and `findToolCallName` for `ToolMessage`, ensuring their expected behavior and immutability.

help wantedgood first issue
247
Difficulty
1/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add unit tests for EmbeddingConfigSpec's resolvers and setters

AI summary

This issue requests the addition of unit tests for the `EmbeddingConfigSpec` class in the `llmconnect` library. Specifically, it aims to test the `resolveModel`, `resolveBaseUrl`, and `resolveApiKey` methods, as well as the `with*` setters, to ensure their precedence logic and blank value handling are correctly implemented. The tests will be placed in a new `EmbeddingConfigSpecSpec.scala` file.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add tests for the RateLimitConfig and ContextConfig setters

AI summary

This issue requests adding missing tests for setters of `RateLimitConfig` and `ContextConfig` in the `llm4s-core` library. The goal is to ensure that each setter correctly modifies only its intended field, following the pattern of existing tests for `CompletionOptionsSettersSpec`.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add tests for the with* setters of Completion, TokenUsage and StreamedChunk

AI summary

This issue requests adding unit tests for the `with*` setter methods of `Completion`, `TokenUsage`, and `StreamedChunk` data classes. The goal is to ensure that each setter correctly modifies its corresponding field while leaving other fields unchanged, following the pattern of an existing `CompletionOptionsSettersSpec`.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add tests for the with* setters of ModelMetadata and ModelCapabilities

AI summary

This issue proposes adding comprehensive tests for the `with*` setter methods of `ModelMetadata` and `ModelCapabilities` classes. The goal is to ensure that each setter correctly modifies only its intended field and doesn't inadvertently affect other properties, following the pattern of an existing test for `CompletionOptions`.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add an offline handoff sample with scripted models, runnable with no API key

AI summary

This issue proposes adding a new offline handoff sample to the project. The sample will demonstrate how to use agent handoffs with scripted models, making it runnable without an API key. It requires creating two agents, a triage agent and a billing specialist, each with its own scripted client to simulate handoff behavior and context preservation.

enhancementhelp wantedgood first issue
247
Difficulty
3/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add a runnable Java sample that needs no API key, using FakeLlmClient

AI summary

This issue requests the creation of a new runnable Java sample program that demonstrates the `FakeLlmClient`. This sample should showcase how to use the fake client for offline testing and provide a basic example of classifying tickets, without requiring any API keys or network access. A corresponding Scala specification test should also be added.

enhancementhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add a PromptInjectionDetector sample that needs no API key

AI summary

This issue requests the addition of a new sample application demonstrating the `PromptInjectionDetector`. The sample should showcase how the detector works without requiring an API key, illustrating its various features like sensitivity levels, presets, and custom patterns. It needs to show that the detector correctly identifies prompt injection attempts and handles normalized input.

enhancementhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Write a Kotlin guide page for llm4s-kotlin-api (coroutines, Flow, agents, DSL)

AI summary

This issue requests the creation of a new Kotlin guide page for the llm4s-kotlin-api library. The page should consolidate information on Kotlin coroutines, Flow, agents, and DSL usage, providing a single resource for Kotlin developers. It needs to cover installation, making a first API call, using completion options, streaming responses, and agent functionality, referencing existing documentation where appropriate.

documentationhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Agents and handoffs guides call Llm4sConfig.provider(), which no longer exists; compile handoffs.md in CI

AI summary

This issue addresses outdated code examples in the project's documentation. Specifically, it requires updating calls to `Llm4sConfig.provider()` which has been refactored, and correcting the way custom tools are defined in agent examples. The changes aim to ensure that users copying code snippets from the documentation will have functional, compilable code.

documentationhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Example Gallery: add the runnable samples that have no entry (providers, context, effect systems, reliability)

AI summary

This issue aims to improve the example gallery documentation by adding entries for runnable samples that are currently missing. The goal is to ensure that all available examples are discoverable by newcomers browsing the gallery, covering various categories like providers, context management, effect systems, and reliability.

documentationhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] User Guide index: link the unlisted guides, fix broken anchors, and render two pages that have no front matter

AI summary

This issue addresses several documentation inconsistencies on the llm4s.org website. It requires updating the User Guide index to link unlisted guides, correcting broken internal links and an example count, fixing a parent page reference for better sidebar navigation, and ensuring two specific pages are rendered correctly by adding necessary front matter.

documentationhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Test the harness value types: TodoStatus wire names, Todo/TodoList/Skill setters and StoreLimits

AI summary

This issue requests adding tests for several value types within the agent harness, specifically `TodoStatus`, `Todo`, `TodoList`, `Skill`, and `StoreLimits`. The goal is to ensure that their setters and wire/JSON serialization/deserialization logic function correctly and are covered by tests, as these are considered part of the upcoming 1.0 API.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Test the with* setters of the harness config types (TodoConfig, SummarizationConfig, OffloadConfig, SkillsConfig, InstructionsConfig)

AI summary

This issue requires adding tests for the `with*` setters of several configuration types (`TodoConfig`, `SummarizationConfig`, `OffloadConfig`, `SkillsConfig`, `InstructionsConfig`) within the agent harness. The tests should verify that the default values are correctly applied and that each setter modifies only its intended field while preserving others. This is important because the setters are the primary way to modify these configuration types after instantiation.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Test the LLM-as-judge guardrail presets (highQuality, childSafe, friendly, professionalOrFriendly, lenient)

AI summary

This issue requires adding new tests for LLM-as-judge guardrail presets. The task involves creating a new test specification (`LLMGuardrailPresetsSpec`) that verifies the threshold, evaluation prompt, and validation logic for several presets like `highQuality`, `childSafe`, `friendly`, `professionalOrFriendly`, and `lenient`. A stub `LLMClient` will be used to ensure deterministic testing.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Test the untested RAGGuardrails presets (standardWithTopics, customerSupport, softwareDocumentation, research, financial)

AI summary

This issue asks to add comprehensive tests for five previously untested RAGGuardrails presets. The tests should verify the exact types and order of guardrails, their specific configurations (like thresholds and onFail settings), and for certain presets, ensure they correctly handle provided topics.

help wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add FileInfoToolSpec: human-readable sizes, extensions, directories and access errors

AI summary

This issue requests the addition of a new test suite, `FileInfoToolSpec`, for the `FileInfoTool` in the agent-tools module. The new tests should cover various aspects of the tool's functionality, including human-readable file sizes at unit boundaries, file extension extraction rules, directory handling, and error cases like missing paths or access denied for paths outside allowed directories. It also requires investigating locale-specific formatting for file sizes.

help wantedgood first issue
247
Difficulty
3/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add ListDirectoryToolSpec: max_entries, truncation, sort order and error cases

AI summary

This issue requests the addition of comprehensive tests for the `ListDirectoryTool` in the `llm4s` project. The new tests should cover various aspects like sorting, `max_entries` and truncation behavior, accurate counting of returned entries, handling of large numbers of files, file size and type detection, and error cases for invalid paths.

help wantedgood first issue
247
Difficulty
3/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add an offline audio preprocessing sample for llm4s-speech that needs no API key

AI summary

This issue proposes adding a new sample to the llm4s-speech project that demonstrates its offline audio preprocessing capabilities. The sample should synthesize audio, validate it, and then process it using the `AudioConverter` without requiring any external models or API keys. It also aims to showcase a validation failure scenario.

enhancementhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Add a sample for evaluation datasets (InMemoryDatasetStore, JSONL, snapshots) that needs no API key

AI summary

This issue requests the creation of a new sample application for the `llm4s-rag` library. The sample should demonstrate how to use the evaluation dataset features, including `InMemoryDatasetStore`, `JsonlCodec`, and `ExampleSelector`, without requiring any API keys. The goal is to provide a practical example for users who want to manage and test datasets.

enhancementhelp wantedgood first issue
247
Difficulty
2/5
llm4s/llm4s

[GOOD FIRST ISSUE] Document the LLM reranker and RAG reranking options in the vector store guide

AI summary

This issue requests documentation updates for the LLM reranker and RAG reranking options within the vector store guide. The task involves adding a new subsection detailing the LLM reranker's functionality, its parameters, and trade-offs, and demonstrating its integration within the RAG pipeline using `RAGConfig`. The goal is to ensure users understand how to configure and utilize these reranking methods.

documentationhelp wantedgood first issue
247
Difficulty
2/5

Also browsing: Python , TypeScript , JavaScript