Bram Cohen — the creator of BitTorrent — just released Manyana on GitHub. It's a Python library that implements CRDT-based version control, and it's been making waves on Hacker News and GitHub Trending.
Here's the quick pitch: traditional VCS systems like Git approximate merge correctness with heuristics. CRDTs give you commutativity and associativity of merges for free — meaning merge(A, B) always equals merge(B, A), no matter what.
In this post, I'll explain what Manyana does, why it matters, and how to combine it with NexaAPI to build AI-powered development workflows.
What Makes Manyana Different?
Consider a classic merge nightmare: two developers branch from the same file. Left deletes a function. Right adds a logging line inside it.
Traditional Git output:
<<<<<<< left
=======
def calculate(x):
a = x * 2
logger.debug(f"a={a}")
b = a + 1
return b
>>>>>>> right
Two opaque blobs. You have to mentally reconstruct what happened.
Manyana's output:
<<<<<<< begin deleted left
def calculate(x):
a = x * 2
======= begin added right
logger.debug(f"a={a}")
======= begin deleted left
b = a + 1
return b
>>>>>>> end conflict
Now you can see exactly what each side did. Left deleted the function. Right inserted a line into the middle of it.
Manyana's Python API
Four core functions make up the public interface:
# Install: pip install manyana (or clone from GitHub)
from manyana import new_state, update_state, merge_states, make_diff
# Create initial state from file lines
initial_lines = ["def calculate(x):", " a = x * 2", " b = a + 1", " return b"]
base_state = new_state(initial_lines)
# Branch A: delete the function
branch_a = update_state(base_state, []) # empty file
# Branch B: add a logging line
new_lines = ["def calculate(x):", " a = x * 2", " logger.debug(f'a={a}')", " b = a + 1", " return b"]
branch_b = update_state(base_state, new_lines)
# Merge — always succeeds, always converges
merged_state, conflicts = merge_states(branch_a, branch_b)
if conflicts:
print("Conflicts found — human review needed")
print(make_diff(merged_state))
else:
print("Clean merge!")
Key properties:
-
Commutative:
merge(A, B) == merge(B, A) - History-aware: captures enough edit history to merge correctly with any branch sharing a common ancestor
- Linear complexity: single linear pass over states
Add AI Superpowers with NexaAPI
Manyana gives you structured conflict data. NexaAPI lets you pipe that into any AI model — Claude, GPT, Gemini — to generate human-readable conflict summaries or auto-generate commit messages.
NexaAPI is an OpenAI-compatible inference API with 56+ models at 1/5 of official pricing. Available on RapidAPI, PyPI, and npm.
Python: AI Conflict Summarizer
from nexaapi import NexaAPI
from manyana import new_state, update_state, merge_states, make_diff
# Initialize NexaAPI client
client = NexaAPI(api_key='YOUR_API_KEY')
def ai_conflict_summary(diff_output: str) -> str:
"""Use Claude via NexaAPI to summarize a Manyana conflict."""
response = client.chat.completions.create(
model='claude-sonnet-4-6', # ~$0.60/1M tokens via NexaAPI
messages=[
{
'role': 'system',
'content': 'You are a code review assistant. Given a Manyana CRDT merge conflict, explain what happened in plain English and suggest the best resolution.'
},
{
'role': 'user',
'content': f'Here is the merge conflict output from Manyana:\n\n{diff_output}\n\nPlease explain what happened and suggest how to resolve it.'
}
],
max_tokens=500
)
return response.choices[0].message.content
# Example usage
base_state = new_state(["def calculate(x):", " a = x * 2", " b = a + 1", " return b"])
branch_a = update_state(base_state, []) # deleted function
branch_b = update_state(base_state, ["def calculate(x):", " a = x * 2", " logger.debug(f'a={a}')", " b = a + 1", " return b"])
merged, conflicts = merge_states(branch_a, branch_b)
if conflicts:
diff = make_diff(merged)
summary = ai_conflict_summary(diff)
print("🤖 AI Conflict Summary:")
print(summary)
JavaScript: AI Commit Message Generator
import NexaAPI from 'nexaapi';
const client = new NexaAPI({ apiKey: 'YOUR_API_KEY' });
async function generateCommitMessage(diffOutput) {
const response = await client.chat.completions.create({
model: 'gpt-5.4-mini', // Fast and cheap: ~$0.15/1M tokens via NexaAPI
messages: [
{
role: 'system',
content: 'Generate a concise, conventional commit message based on the provided code diff.'
},
{
role: 'user',
content: `Generate a commit message for this change:\n\n${diffOutput}`
}
],
max_tokens: 100
});
return response.choices[0].message.content;
}
// Example: auto-generate commit messages for Manyana state updates
const diff = "Added logger.debug line to calculate() function";
const commitMsg = await generateCommitMessage(diff);
console.log(`✅ Suggested commit: ${commitMsg}`);
// Output: "feat(calculate): add debug logging for intermediate value a"
3 AI-Powered Dev Workflow Ideas
Smart Conflict Reviewer — Pipe Manyana's structured conflict output into Claude Sonnet via NexaAPI. Get plain-English explanations before your team opens the file.
Auto Commit Messages — Use Manyana's diff output + GPT-5.4 mini (via NexaAPI at $0.15/1M tokens) to auto-generate conventional commit messages. Integrate into your CI pipeline.
Decentralized AI Code Review — Manyana's commutative merges make it ideal for decentralized workflows. Combine with NexaAPI's FLUX image generation to auto-generate architecture diagrams from code diffs.
NexaAPI Pricing vs Official
| Model | Official | NexaAPI | Savings |
|---|---|---|---|
| Claude Sonnet 4.6 | $3.00/1M | ~$0.60/1M | 80% off |
| GPT-5.4 mini | $0.75/1M | ~$0.15/1M | 80% off |
| Gemini 2.0 Flash | $0.075/1M | ~$0.015/1M | 80% off |
| FLUX Schnell | $0.003/img | ~$0.001/img | 3x cheaper |
Source: nexaapi.com/pricing | Retrieved March 27, 2026
Get Started
# Install Manyana
pip install manyana
# Install NexaAPI Python SDK
pip install nexaapi
# Or JavaScript
npm install nexaapi
Get your NexaAPI key at nexaapi.com or via RapidAPI. One key, 56+ models, pay as you go.
Have questions about building AI dev tools? Drop them in the comments!
💡 1/5 of official price | Pay as you go | No subscription
📦 Also on PyPI and npm
Top comments (0)