Fix 'git rebase --continue' (and 'git rebase -i') blocking or timing out in a non-interactive shell (bash tools, CI, scripts, scheduled jobs) because git opens an interactive editor (nano/vi) with no TTY that waits forever for stdin. Use when: rebase --continue hangs or the shell tool times out with no commit produced (especially after 'git add'-ing resolved conflicts); you see 'GNU nano' or a vi screen in rebase output; you are about to re-run --continue hoping it works; or you are doing ANY...
Installs into .claude/skills of the current project.
Are you the author of Git Rebase Noninteractive Editor?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ericmjl-git-rebase-noninteractive-editor)
---
name: git-rebase-noninteractive-editor
description: >-
Fix 'git rebase --continue' (and 'git rebase -i') blocking or timing out in a non-interactive shell (bash tools, CI, scripts, scheduled jobs) because git opens an interactive editor (nano/vi) with no TTY that waits forever for stdin. Use when: rebase --continue hangs or the shell tool times out with no commit produced (especially after 'git add'-ing resolved conflicts); you see 'GNU nano' or a vi screen in rebase output; you are about to re-run --continue hoping it works; or you are doing ANY interactive rebase operation (reword, squash, re-order) from a non-interactive tool. FIX: prefix with the env var set to ':' or 'true' — 'GIT_EDITOR=true git rebase --continue' accepts the prepared message (continue has NO --no-edit flag), 'GIT_SEQUENCE_EDITOR=: git rebase -i main' accepts the TODO list, both at once for a full interactive rebase, or 'export GIT_EDITOR=true' for multi-step sessions. Root cause and lookalike distinctions in the body.
created_at: "2026-08-05"
---
# Git Rebase Noninteractive Editor
Fix 'git rebase --continue' (and 'git rebase -i') BLOCKING indefinitely or timing out in a non-interactive shell (opencode bash tool, CI, scripts, scheduled jobs) because it opens an interactive editor (nano/vi) that has no TTY and waits forever for stdin. Use when: you resolved rebase conflicts and ran 'git rebase --continue' but the command hangs / times out / the shell tool terminates after exceeding timeout; you see 'GNU nano' or a vi screen in the output of a rebase --continue; 'git rebase --continue' produced no output and seems stuck; you are about to re-run --continue hoping it works (it won't — the editor will block again); or you are doing ANY interactive rebase operation (reword, squash, re-order) from the opencode bash tool or CI. ROOT CAUSE: git invokes an editor at TWO rebase phases via TWO DIFFERENT env vars — GIT_EDITOR fires for commit-message editing during 'rebase --continue' after conflict resolution (and for 'reword'); GIT_SEQUENCE_EDITOR fires for the TODO-list editing during 'git rebase -i' (pick/squash/reorder). In a non-interactive shell with no TTY, nano/vi blocks waiting for input that never arrives. FIX: prefix the command with the env var set to ':' (the no-op/true builtin) or 'true' — 'GIT_EDITOR=true git rebase --continue' accepts the prepared commit message as-is; 'GIT_SEQUENCE_EDITOR=: git rebase -i main' accepts the TODO list as-is; for BOTH phases at once use 'GIT_EDITOR=true GIT_SEQUENCE_EDITOR=: git rebase -i base'. NOTE: 'git rebase --continue' has NO --no-edit flag (that flag is git-commit-only), so the env var is the ONLY clean way to skip the editor on continue. SMOKING GUN: 'git rebase --continue' hangs or the shell tool times out with no commit produced, especially right after you 'git add'-ed resolved conflicts. ALSO: set the env var GLOBALLY for a session ('export GIT_EDITOR=true') if you expect multiple continue steps in one rebase. Distinct from memory #1300 (uv not on PATH in non-interactive shell — a binary-discovery problem, not an editor-blocking problem) and from memory #1302 (execution-discipline during rebase narration — a behavior problem; THIS is a mechanical blocking problem with a mechanical fix).
## Instructions
TODO: Add specific instructions based on observed patterns.