Good First Issues
This is a list of JavaScript repositories with good first issues for newcomers to open source. Contributions are welcome!
This list gets updated every day at midnight.
- cli:
run --duration abc renders a 5-second trailer and --fps 0 renders at 24 fps without a word
- cli: a mistyped GAME_TRAILER_STUDIO_PORT gives SERVER_START_FAILED "check server.log" instead of INVALID_PORT
- reframe and auto_zoom: a mistyped shot id in
clips is ignored, and the answer is "Nothing to reframe (same aspect or stills)" or "No shots long enough"
- docs: the full agent guide (AGENT-GUIDE.md) exists only in Dutch; write an English version, one section per PR
- docs: the studio_edit description lists 16 of the 26 operations (add_text, add_overlay, punch_in, speed_ramp and six more are missing), and the add_text guide leaves out the "callout" style
- captions: "Caption points outside the selected source" does not say which caption, or how long the source is
- freeze: a freeze frame at or after the end of the edit fails with UNSUPPORTED_MEDIA "Cannot read .../freeze-xxx.png" instead of saying the time is outside the edit
- docs: TROUBLESHOOTING.md does not explain the errors people hit most (REVISION_CONFLICT, PROJECT_BUSY, PLAN_REQUIRED, TRANSCRIPT_MISSING, ...)
- tools: argument errors say "invalid identifier", "invalid numeric value" and "unsupported choice" without the value or what is allowed
- story: style colours refuse "#fff" and do not say which colour is wrong ("Colour red must look like #1e4f91.")
- cli:
studio without a tool name, studio -h and studio help answer "Unknown tool: studio_undefined" instead of listing the tools
- docs: translate the README quick start into your language (German, Spanish, French, Portuguese, Chinese, Japanese ...)
- docs: a story-format tutorial with three ready-to-run sample stories (no footage, no music files, no stock assets needed)
- publish: YouTube drafts keep "<" and ">" in the title and description, which YouTube refuses
- cli:
studio --request <missing file> answers with a raw ENOENT/EISDIR instead of a clear error
- Find text hidden in Unicode variation selectors
- Docs: show what the answers look like in docs/agents.md (calm, watch, alarm, allow, ask, deny, and every field of the JSON)
- check-text and check-file: say which kinds of key were found (Anthropic, Mistral), not only how many
- check-action: uploads with
curl --data-binary @file, --json @file, --form, -d@file and wget --post-file pass as a plain download, and curl -f URL is refused as an upload
- Tests: the plain output of the command line (
human() in bin/agathos.js) is not tested for status, findings, agents and report
- Command line: a mistyped option is read as a file name or ignored (
--jsno, --standlone), and a second file is dropped without a word
- Explain an outdated agent in plain words (version.old)
- Catch more ways to write "ignore previous instructions"
- Check the instruction files in an agent's home folder (~/.claude/CLAUDE.md and others) for hidden text
- Read the MCP servers of GitHub Copilot CLI and Amazon Q CLI
- Flag start flags that take a value: Claude Code permission mode and Codex sandbox and approval settings
- check-action should ask before an agent edits ~/.claude.json, mcp_config.json, GEMINI.md and other agent settings
- Tell us about a risky AI agent setting AgathOS does not warn about yet
- Try AgathOS on your machine and report what you see (Windows 10, Windows on ARM, Intel Mac)
- Native speakers: check the welcome text in your language
- docs: translate the README quick start into your language (German, Spanish, French, Portuguese, Chinese, Japanese, Hindi ...)
- Exit codes: a wrong option value exits with 1 (store problem) instead of 2 for
feedback --signal, handoff leave --expires-days and --kind filters
- tests: no test runs
stashpad encrypt and stashpad decrypt through the command line
- decide: a choice written in Chinese, Japanese, Russian or Arabic always gets the id
decision-note (then decision-note-2, decision-note-3)
- A usage error prints the whole 83-line help under the one line that matters, and a mistyped command (
stashpad serch) gets no suggestion
- Number options accept "", 1e1 and 0x5:
stashpad ui --port "" starts on a random port, and shown --limit abc is not checked at all when the log is empty
- misses: close words are not sorted, so the suggested synonym can be the worse match
- ui: show the review page in English
- tests: CLI coverage for pin, unpin, pins, merge, forget and recall
- setup: add an opencode snippet
- docs: bring ARCHITECTURE.md up to date with 0.3
- Built-in synonyms for German and French
- setup: add Gemini CLI and Cline snippets
- Add News tab SEO routes and salvage v14 SharedWorker WebSocket post
- The timeline reads to a person: editor, header, long bars, today, links
- A grid that allows several selections never sets aria-multiselectable
- TreeStore loses edits to a numeric parent's children in Turbo Mode
- Give the Workstation one visitor-facing tour
- No guide names the install step the engine's build scripts need
- Render Neo.app.content.Container main article before sidenav in DOM order
- A press in a grid nested in another grid drag-scrolls the outer one
- Calendar week and day views get an all-day row
- GraphScene's wheel zooms toward the pointer
- CI runs a pull request's changed specs without its source changes
- The shared-state example opens its second window itself
- Review frames ship in the npm package again; a guard keeps them out
- The guide names each way to take part, and the chooser routes it
- Add pressed background, text, and glyph tokens to Neo.button.Base
- Row geometry: an extra height per row that the estimate ignores
- The visual components, canvas and wrappers get their overview
- Without the VDom worker, meta, auto-mounts and the paint hook break
- Portal transitions bypass the motion vocabulary and reduced motion
- The State & Data examples get their overview
- Buttons, containers, lists, menus and trees get their overview
- The Calendar examples get their overview
- Neo.core.Util's style helpers have no unit spec
- The grid guide does not cover CSV export or reading cell values
- Give the 17 cover-less Grid and Table example cards real covers
- src/worker/App.mjs webpackExclude rejects a pnpm store path, so a linked package's framework App build reaches no app
- An open cell edit survives its grid's move to another window
- Pin the range field's value-in-label display