<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/github---funador-claude-code-merge-queue-the-local-merge-queue-for-parallel-claude-code-agents-m7iiczonj" -->

---
title: GitHub - funador/claude-code-merge-queue: The local...
description: Claude Code Merge Queue is a local, zero-cost npm tool that serializes git landings from multiple parallel Claude Code agents running in separate worktrees. It...
canonical: https://daily.dev/posts/github---funador-claude-code-merge-queue-the-local-merge-queue-for-parallel-claude-code-agents-m7iiczonj
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: GitHub - funador/claude-code-merge-queue: The local merge queue for parallel Claude Code agents | daily.dev
og:description: Claude Code Merge Queue is a local, zero-cost npm tool that serializes git landings from multiple parallel Claude Code agents running in separate worktrees. It...
og:url: https://daily.dev/posts/github---funador-claude-code-merge-queue-the-local-merge-queue-for-parallel-claude-code-agents-m7iiczonj
og:image: https://api.daily.dev/og/posts/m7IicZoNJ.png
og:image:alt: GitHub - funador/claude-code-merge-queue: The local merge queue for parallel Claude Code agents
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub - funador/claude-code-merge-queue: The local merge queue for parallel Claude Code agents

**[Hacker News](https://daily.dev/sources/hn)** · 6 min read · 1 upvotes · 0 comments

## Summary

Claude Code Merge Queue is a local, zero-cost npm tool that serializes git landings from multiple parallel Claude Code agents running in separate worktrees. It prevents push races, redundant builds, and shared-resource test flakiness by implementing a FIFO queue with a pre-push hook that enforces a configurable check command before any branch lands. The tool provides commands for landing, syncing, promoting to production, previewing lane changes, and pruning old worktrees. Unlike GitHub's Merge Queue (Enterprise Cloud only, costs Actions minutes), this runs entirely on your local machine with no external dependencies.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/funador/claude-code-merge-queue>

## Questions this post answers

### How can I prevent multiple Claude Code agents from causing push races when working in parallel on the same repository?

A local merge queue tool serializes landings across parallel agent worktrees using a FIFO push queue, so two lanes are never mid-push at once. It rebases and pushes each lane onto the integration branch through the `land` command, runs a configured check command before allowing the merge, and rejects direct pushes via a pre-push hook unless an emergency env var is set.

_Developers coordinating parallel AI coding agents track tooling like this on daily.dev._

### What happens if a Claude Code merge queue lock holder process is killed mid-claim?

Locks are crash-safe based on PID liveness rather than a timeout: if a process holding a lock is killed with kill -9, the next process detects the PID is dead and reclaims the lock immediately, avoiding stale locks or the need to tune a timeout value.

_Anyone building reliable local agent workflows can follow lock-safety patterns like this on daily.dev._

### How does a local Claude Code merge queue differ from GitHub's built-in merge queue?

It runs entirely on your own machine at zero cost, requires no pull request, and works on any GitHub plan or repo, whereas GitHub's Merge Queue is Enterprise Cloud only, consumes GitHub Actions minutes on every queue attempt, and requires a pull request. Both serialize landings and test before merge, but one bills a cloud runner and the other does not.

_Teams weighing local versus cloud merge queue tooling compare trade-offs like these on daily.dev._

## Similar posts on daily.dev

- [Make Your Agents Take Turns Pushing Code](https://daily.dev/posts/make-your-agents-take-turns-pushing-code-gyjtnwkfs) · ITNEXT · 1 upvotes · 0 comments
- [How I Extend My Workflow with Claude Code CLI](https://daily.dev/posts/how-i-extend-my-workflow-with-claude-code-cli-4mt9ezjnc) · Atomic Spin · 0 upvotes · 0 comments
- [Claude Code and GitLab: Three workflows that ship](https://daily.dev/posts/claude-code-and-gitlab-three-workflows-that-ship-wgsodutl9) · GitLab · 1 upvotes · 0 comments
- [Claude Code 2.5: New Features for Web Developers](https://daily.dev/posts/claude-code-2-5-new-features-for-web-developers-prgjxvmiw) · SitePoint · 0 upvotes · 0 comments

---

Tags: [#ai-agents](https://daily.dev/tags/ai-agents), [#typescript](https://daily.dev/tags/typescript), [#claude-code](https://daily.dev/tags/claude-code)

[View this post on daily.dev](https://daily.dev/posts/github---funador-claude-code-merge-queue-the-local-merge-queue-for-parallel-claude-code-agents-m7iiczonj)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"GitHub - funador/claude-code-merge-queue: The local merge queue for parallel Claude Code agents","url":"https://daily.dev/posts/github---funador-claude-code-merge-queue-the-local-merge-queue-for-parallel-claude-code-agents-m7iiczonj","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/github---funador-claude-code-merge-queue-the-local-merge-queue-for-parallel-claude-code-agents-m7iiczonj"},"datePublished":"2026-07-30T07:29:21.391Z","dateModified":"2026-09-13T20:43:24.519Z","description":"Claude Code Merge Queue is a local, zero-cost npm tool that serializes git landings from multiple parallel Claude Code agents running in separate worktrees. It...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/4018aec1659c7b464647bb5cbe171348?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/4018aec1659c7b464647bb5cbe171348?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/github---funador-claude-code-merge-queue-the-local-merge-queue-for-parallel-claude-code-agents-m7iiczonj","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ai-agents,typescript,claude-code","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"GitHub - funador/claude-code-merge-queue: The local merge queue for parallel Claude Code agents"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/github---funador-claude-code-merge-queue-the-local-merge-queue-for-parallel-claude-code-agents-m7iiczonj#faq","mainEntity":[{"@type":"Question","name":"How can I prevent multiple Claude Code agents from causing push races when working in parallel on the same repository?","acceptedAnswer":{"@type":"Answer","text":"A local merge queue tool serializes landings across parallel agent worktrees using a FIFO push queue, so two lanes are never mid-push at once. It rebases and pushes each lane onto the integration branch through the `land` command, runs a configured check command before allowing the merge, and rejects direct pushes via a pre-push hook unless an emergency env var is set. Developers coordinating parallel AI coding agents track tooling like this on daily.dev."}},{"@type":"Question","name":"What happens if a Claude Code merge queue lock holder process is killed mid-claim?","acceptedAnswer":{"@type":"Answer","text":"Locks are crash-safe based on PID liveness rather than a timeout: if a process holding a lock is killed with kill -9, the next process detects the PID is dead and reclaims the lock immediately, avoiding stale locks or the need to tune a timeout value. Anyone building reliable local agent workflows can follow lock-safety patterns like this on daily.dev."}},{"@type":"Question","name":"How does a local Claude Code merge queue differ from GitHub's built-in merge queue?","acceptedAnswer":{"@type":"Answer","text":"It runs entirely on your own machine at zero cost, requires no pull request, and works on any GitHub plan or repo, whereas GitHub's Merge Queue is Enterprise Cloud only, consumes GitHub Actions minutes on every queue attempt, and requires a pull request. Both serialize landings and test before merge, but one bills a cloud runner and the other does not. Teams weighing local versus cloud merge queue tooling compare trade-offs like these on daily.dev."}}]}
```

