Work on GitHub Issues
Use “Work on GitHub Issues” in Recued. Choose Codex, Claude Code, Pi or OpenCode to work on open GitHub issues, each on its own branch and folder beside your clone. Pi and OpenCode run without a sandbox, and can use the repository’s own setup. Skip or continue issues already worked on by that tool, show each answer, and optionally commit the changes.
How it works
Inspect the data fetches, transforms, gates, and output this recipe runs.
Process (177 steps)
runner
default
Apply default
runner_name
switch
Map runner to one of: pi, codex, opencode, claude-code
guard_runner
guard
Stop if runner name is missing
agent_lane
switch
Map setting repo setup to one of: true
commit_setting
default
Apply default
commit_mode
switch
Map commit setting to one of: codex
skip_codex_continue
any
Check if any of the conditions are true
skip_claude_continue
any
Check if any of the conditions are true
skip_pi_continue
any
Check if any of the conditions are true
skip_opencode_continue
any
Check if any of the conditions are true
skip_pi_repo_continue
any
Check if any of the conditions are true
skip_opencode_repo_continue
any
Check if any of the conditions are true
skip_codex_message
any
Check if any of the conditions are true
skip_claude_message
any
Check if any of the conditions are true
skip_pi_message
any
Check if any of the conditions are true
skip_opencode_message
any
Check if any of the conditions are true
skip_pi_repo_message
any
Check if any of the conditions are true
skip_opencode_repo_message
any
Check if any of the conditions are true
github_repo
trim
Trim whitespace from setting repo
github_repo_parts
split
Split github repo into parts
repo_key
lowercase
Convert github repo parts 0}} {{step github repo parts 1 to lowercase
issues_raw
recued-core.github-pack.issue.search
Search issue on github pack
issues
default
Apply default
guard_issues
guard
Stop if issues is empty
real_issues
filter
Filter by condition
repo_identity
recued-core.git.repo.common_dir
Common dir repo on git
repo_root
recued-core.git.repo.root
Root repo on git
clone_root
trim
Trim whitespace from repo root stdout
clone_id
sha256
Apply sha256
session_records
core.storage.shared.list
List storage shared
legacy_session_records
core.storage.shared.list
List storage shared
legacy_sessions
filter
Filter by condition
legacy_session_clones
recued-core.git.repo.common_dir
Common dir repo on git
compatible_legacy_sessions
filter
Filter by condition
legacy_session_entries
map
Extract from each item
session_entries
flatten
Flatten nested lists in
issue_rows
map
Extract from each item
issue_sessions
enrich_by
Apply enrich_by
branch_probe
recued-core.git.repo.branch_exists
Branch exists repo on git
failed_branch_probes
filter
Filter by condition
branch_errors
map
Extract from each item
new_probes
filter
Filter by condition
known_probes
filter
Filter by condition
new_issues
map
Extract from each item
known_issues
map
Extract from each item
new_batch
slice
Take a subset of
continue_batch
slice
Take a subset of
continue_candidates
switch
Map setting continue previous to one of: true
known_worktrees
recued-core.git.repo.worktree_path
Worktree path repo on git
failed_worktree_probes
filter
Filter by condition
worktree_probe_errors
map
Extract from each item
successful_worktree_probes
filter
Filter by condition
known_paths
map
Extract result.stdout from each item
registered_worktrees
filter
Filter by condition
owner_checkout_worktrees
filter
Filter by condition
owner_checkout_errors
map
Extract from each item
attached_worktrees
filter
Filter by condition
unattached_worktrees
filter
Filter by condition
attached_inputs
map
Extract from each item
unattached_inputs
map
Extract from each item
recover_worktrees
recued-core.git.repo.worktree_attach
Worktree attach repo on git
failed_recoveries
filter
Filter by condition
recovery_errors
map
Extract from each item
successful_recoveries
filter
Filter by condition
recovered_inputs
map
Extract from each item
recovered_with_session
filter
Filter by condition
recovered_without_session
filter
Filter by condition
recovered_new_inputs
map
Extract from each item
continue_inputs
flatten
Flatten nested lists in
worktrees
recued-core.git.repo.worktree_add
Worktree add repo on git
new_review_inputs
map
Extract from each item
review_inputs
flatten
Flatten nested lists in
codex_review_inputs
switch
Map runner to one of: codex
claude_review_inputs
switch
Map runner to one of: claude-code
pi_review_inputs
switch
Map agent lane to one of: pi
opencode_review_inputs
switch
Map agent lane to one of: opencode
pi_repo_review_inputs
switch
Map agent lane to one of: pi_repo_setup
opencode_repo_review_inputs
switch
Map agent lane to one of: opencode_repo_setup
codex_reviews
recued-core.codex-pack.codex.review
Review codex on codex pack
skip: item.ready equal false
claude_reviews
recued-core.claude-code-pack.claude_code.task
Task claude code on claude code pack
skip: item.ready equal false
pi_reviews
recued-core.pi-agent-pack.pi.task
Task pi on pi agent pack
skip: item.ready equal false
opencode_reviews
recued-core.opencode-pack.opencode.task
Task opencode on opencode pack
skip: item.ready equal false
pi_repo_reviews
recued-core.pi-agent-pack.pi_repo_setup.task
Task pi repo setup on pi agent pack
skip: item.ready equal false
opencode_repo_reviews
recued-core.opencode-pack.opencode_repo_setup.task
Task opencode repo setup on opencode pack
skip: item.ready equal false
reviews
flatten
Flatten nested lists in
new_results
map
Extract from each item
by_id_inputs
filter
Filter by condition
skip_folder_check
all
Check if all conditions are true
session_folders
recued-core.git.repo.root
Root repo on git
skip: step.skip_folder_check equal true
session_folders_found
filter
Filter by condition
session_folders_paths
map
Extract result.stdout from each item
session_folders_keys
map
Extract from each item
target_folders
recued-core.git.repo.root
Root repo on git
skip: step.skip_folder_check equal true
target_folders_found
filter
Filter by condition
target_folders_paths
map
Extract result.stdout from each item
target_folders_keys
map
Extract from each item
folder_matches
enrich_by
Apply enrich_by
same_folder_numbers
filter
Filter by condition
by_id_checked
enrich_by
Apply enrich_by
same_folder_inputs
filter
Filter by condition
moved_inputs
filter
Filter by condition
resume_by_id
switch
Map skip folder check to one of: true
moved_sessions
switch
Map skip folder check to one of: true
moved_session_errors
map
Extract from each item
resume_newest
filter
Filter by condition
codex_continued
recued-core.codex-pack.codex.resume_session
Resume session codex on codex pack
skip: step.skip_codex_continue equal true
claude_continued
recued-core.claude-code-pack.claude_code.resume_session
Resume session claude code on claude code pack
skip: step.skip_claude_continue equal true
pi_continued
recued-core.pi-agent-pack.pi.resume_session
Resume session pi on pi agent pack
skip: step.skip_pi_continue equal true
opencode_continued
recued-core.opencode-pack.opencode.resume_session
Resume session opencode on opencode pack
skip: step.skip_opencode_continue equal true
pi_repo_continued
recued-core.pi-agent-pack.pi_repo_setup.resume_session
Resume session pi repo setup on pi agent pack
skip: step.skip_pi_repo_continue equal true
opencode_repo_continued
recued-core.opencode-pack.opencode_repo_setup.resume_session
Resume session opencode repo setup on opencode pack
skip: step.skip_opencode_repo_continue equal true
continued
coalesce
Use the first available value from: codex continued, claude continued, pi continued, opencode continued, pi repo continued, opencode repo continued,
codex_continued_newest
recued-core.codex-pack.codex.resume
Resume codex on codex pack
skip: step.skip_codex_continue equal true
claude_continued_newest
recued-core.claude-code-pack.claude_code.resume
Resume claude code on claude code pack
skip: step.skip_claude_continue equal true
pi_continued_newest
recued-core.pi-agent-pack.pi.resume
Resume pi on pi agent pack
skip: step.skip_pi_continue equal true
opencode_continued_newest
recued-core.opencode-pack.opencode.resume
Resume opencode on opencode pack
skip: step.skip_opencode_continue equal true
pi_repo_continued_newest
recued-core.pi-agent-pack.pi_repo_setup.resume
Resume pi repo setup on pi agent pack
skip: step.skip_pi_repo_continue equal true
opencode_repo_continued_newest
recued-core.opencode-pack.opencode_repo_setup.resume
Resume opencode repo setup on opencode pack
skip: step.skip_opencode_repo_continue equal true
continued_newest
coalesce
Use the first available value from: codex continued newest, claude continued newest, pi continued newest, opencode continued newest, pi repo continued newest, opencode repo continued newest,
continued_results
map
Extract from each item
continued_newest_results
map
Extract from each item
continued_all
flatten
Flatten nested lists in
all_results
flatten
Flatten nested lists in
answers
core.storage.file.read-temp
Read temp storage file
skip: item.file_ref is_null
answer_text
map
Extract result.bytes_b64 from each item
results_flat
map
Extract from each item
review_rows
map
Extract from each item
review_table
to_table
Format results as a data table
now
date_add
Add 0 days to
results_to_save
filter
Filter by condition
session_saves
core.storage.shared.write
Write storage shared
skip: item.session_id is_null
commit_candidates
filter
Filter by condition
git_messages
map
Extract from each item
skip: step.commit_mode not_equal git
git_message_list
default
Apply default
codex_message_batch
filter
Filter by condition
codex_commit_messages
recued-core.codex-pack.codex.commit_message
Commit message codex on codex pack
skip: step.skip_codex_message equal true
claude_commit_messages
recued-core.claude-code-pack.claude_code.commit_message
Commit message claude code on claude code pack
skip: step.skip_claude_message equal true
pi_commit_messages
recued-core.pi-agent-pack.pi.commit_message
Commit message pi on pi agent pack
skip: step.skip_pi_message equal true
opencode_commit_messages
recued-core.opencode-pack.opencode.commit_message
Commit message opencode on opencode pack
skip: step.skip_opencode_message equal true
pi_repo_commit_messages
recued-core.pi-agent-pack.pi_repo_setup.commit_message
Commit message pi repo setup on pi agent pack
skip: step.skip_pi_repo_message equal true
opencode_repo_commit_messages
recued-core.opencode-pack.opencode_repo_setup.commit_message
Commit message opencode repo setup on opencode pack
skip: step.skip_opencode_repo_message equal true
commit_messages
coalesce
Use the first available value from: codex commit messages, claude commit messages, pi commit messages, opencode commit messages, pi repo commit messages, opencode repo commit messages,
commit_message_list
default
Apply default
message_files
core.storage.file.read-temp
Read temp storage file
skip: item.ok equal false
message_text
map
Extract result.bytes_b64 from each item
codex_messages
map
Extract from each item
commit_batch
flatten
Flatten nested lists in
with_message
filter
Filter by condition
without_message
filter
Filter by condition
staging
recued-core.git.repo.stage_all
Stage all repo on git
staged_probe
recued-core.git.repo.has_staged_changes
Has staged changes repo on git
skip: item.ok equal false
commit_ready
filter
Filter by condition
nothing_staged
filter
Filter by condition
staging_failed
filter
Filter by condition
commit_inputs
map
Extract from each item
commits
recued-core.git.repo.commit
Commit repo on git
commit_rows
map
Extract from each item
unchanged_rows
map
Extract from each item
staging_failed_rows
map
Extract from each item
no_message_rows
map
Extract from each item
commit_report
flatten
Flatten nested lists in
commit_lines
map
Extract note from each item
commit_table
to_table
Format results as a data table
committed
filter
Filter by condition
answered
filter
Filter by condition
failed
filter
Filter by condition
label_filter
default
Apply default
issue_count
count
Count items in real issues
new_count
count
Count items in new issues
started_count
count
Count items in review inputs
known_count
count
Count items in known issues
continued_count
count
Count items in continued all
continued_newest_count
count
Count items in continued newest results
answered_count
count
Count items in answered
failed_count
count
Count items in failed
committed_count
count
Count items in committed
card
to_summary
Format results as a summary card
▼
Output
summary
card
table
review_table
table
commit_table
Settings
Configurable at install. Defaults shown — change them anytime in Recued.
repo
setting
=
—
commit
setting
=
none
labels
setting
=
runner
setting
=
codex
repo dir
setting
=
—
follow up
setting
=
Continue working on this issue. Check what you changed so far, finish anything left, and summarize the result.
max issues
setting
=
5
repo setup
setting
=
false
continue previous
setting
=
false
Uses (37 operations)
Pack operation
Search issue on github pack
recued-core.github-pack.issue.search
Pack operation
Common dir repo on git
recued-core.git.repo.common_dir
Pack operation
Root repo on git
recued-core.git.repo.root
Shared store
List storage shared
core.storage.shared.list
Pack operation
Branch exists repo on git
recued-core.git.repo.branch_exists
Pack operation
Worktree path repo on git
recued-core.git.repo.worktree_path
Pack operation
Worktree attach repo on git
recued-core.git.repo.worktree_attach
Pack operation
Worktree add repo on git
recued-core.git.repo.worktree_add
Pack operation
Review codex on codex pack
recued-core.codex-pack.codex.review
Pack operation
Task claude code on claude code pack
recued-core.claude-code-pack.claude_code.task
Pack operation
Task pi on pi agent pack
recued-core.pi-agent-pack.pi.task
Pack operation
Task opencode on opencode pack
recued-core.opencode-pack.opencode.task
Pack operation
Task pi repo setup on pi agent pack
recued-core.pi-agent-pack.pi_repo_setup.task
Pack operation
Task opencode repo setup on opencode pack
recued-core.opencode-pack.opencode_repo_setup.task
Pack operation
Resume session codex on codex pack
recued-core.codex-pack.codex.resume_session
Pack operation
Resume session claude code on claude code pack
recued-core.claude-code-pack.claude_code.resume_session
Pack operation
Resume session pi on pi agent pack
recued-core.pi-agent-pack.pi.resume_session
Pack operation
Resume session opencode on opencode pack
recued-core.opencode-pack.opencode.resume_session
Pack operation
Resume session pi repo setup on pi agent pack
recued-core.pi-agent-pack.pi_repo_setup.resume_session
Pack operation
Resume session opencode repo setup on opencode pack
recued-core.opencode-pack.opencode_repo_setup.resume_session
Pack operation
Resume codex on codex pack
recued-core.codex-pack.codex.resume
Pack operation
Resume claude code on claude code pack
recued-core.claude-code-pack.claude_code.resume
Pack operation
Resume pi on pi agent pack
recued-core.pi-agent-pack.pi.resume
Pack operation
Resume opencode on opencode pack
recued-core.opencode-pack.opencode.resume
Pack operation
Resume pi repo setup on pi agent pack
recued-core.pi-agent-pack.pi_repo_setup.resume
Pack operation
Resume opencode repo setup on opencode pack
recued-core.opencode-pack.opencode_repo_setup.resume
Files
Read temp storage file
core.storage.file.read-temp
Shared store
Write storage shared
core.storage.shared.write
Pack operation
Commit message codex on codex pack
recued-core.codex-pack.codex.commit_message
Pack operation
Commit message claude code on claude code pack
recued-core.claude-code-pack.claude_code.commit_message
Pack operation
Commit message pi on pi agent pack
recued-core.pi-agent-pack.pi.commit_message
Pack operation
Commit message opencode on opencode pack
recued-core.opencode-pack.opencode.commit_message
Pack operation
Commit message pi repo setup on pi agent pack
recued-core.pi-agent-pack.pi_repo_setup.commit_message
Pack operation
Commit message opencode repo setup on opencode pack
recued-core.opencode-pack.opencode_repo_setup.commit_message
Pack operation
Stage all repo on git
recued-core.git.repo.stage_all
Pack operation
Has staged changes repo on git
recued-core.git.repo.has_staged_changes
Pack operation
Commit repo on git
recued-core.git.repo.commit
Trust & control
What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.
What it's allowed to do
Read
Shared store
core.storage.shared.list
read-only
Read
Files
core.storage.file.read-temp
read-only
Write
Shared store
core.storage.shared.write
external change
34 more aren't listed here. You'll see them at install.