DEV Community

LeoJulieta
LeoJulieta

Posted on

Real‑Time AI Pair‑Programming Duels with AgentMash

AgentMash on Product Hunt: Real‑Time AI‑Powered Pair‑Programming Duels

Introduction

Imagine two developers racing side‑by‑side with an AI co‑pilot that writes, reviews, and refactors code in real time. That’s the experience AgentMash delivered when it landed on Product Hunt, and it’s already reshaping how distributed teams collaborate. In this guide you’ll get a hands‑on walkthrough of AgentMash’s architecture, set‑up instructions, ready‑to‑run code samples in Python, TypeScript, and Go, and a complete CI/CD integration using GitHub Actions and Fly.io.


Quick Start

1. Install the CLI

# Using Homebrew (macOS / Linux)
brew install agentmash/tap/agentmash

# Or with npm
npm i -g agentmash
Enter fullscreen mode Exit fullscreen mode

2. Run a local duel (no API key required)

# Start a duel with the built‑in Grok‑lite model
agentmash duel start --model grok-lite --lang python
Enter fullscreen mode Exit fullscreen mode

The command spawns a WebSocket server, opens a browser window, and gives you a duel ID you can share with a teammate.

3. Invite a partner

# On the teammate’s machine
agentmash duel join --id abc1234
Enter fullscreen mode Exit fullscreen mode

Both participants now see a synchronized editor. The AI streams suggestions as you type, and you can accept, reject, or edit them on the fly.


Core Architecture

Component What It Does
WebSocket Relay Provides sub‑100 ms bidirectional communication between browsers, the CLI, and the LLM inference service.
Session Manager Issues a unique duel ID, tracks participants, and persists the edit history in a lightweight SQLite store.
LLM Adapter Abstracts OpenAI, Anthropic, and Grok back‑ends behind a common API. Switch providers with AGENTMASH_PROVIDER.
Sandbox Engine Executes untrusted code inside a Docker‑in‑Docker container with configurable CPU, memory, and seccomp limits.
Git Sync Daemon Mirrors every duel to a temporary Git branch; on duel completion it auto‑creates a pull request.

Installation & Configuration

Prerequisites

  • Docker ≥ 20.10
  • Node ≥ 18 (for the web UI)
  • Optional: An OpenAI, Anthropic, or Grok API key for production‑grade models

Environment Variables

export AGENTMASH_PROVIDER=openai      # or anthropic, grok
export OPENAI_API_KEY=sk-...
export AGENTMASH_SANDBOX=true        # enable Docker sandbox
export AGENTMASH_MAX_CPU=2           # limit each duel to 2 vCPU
export AGENTMASH_MAX_MEM=4g          # limit each duel to 4 GB RAM
Enter fullscreen mode Exit fullscreen mode

First‑time Setup

agentmash init            # creates ~/.agentmash/agentmash.yaml
agentmash daemon start    # launches the WebSocket Relay & Session Manager
Enter fullscreen mode Exit fullscreen mode

Edit ~/.agentmash/agentmash.yaml to fine‑tune policies, e.g.:

sandbox:
  enabled: true
  cpu: 2
  memory: 4g
  seccomp: default.json
git:
  remote: git@github.com:yourorg/duel-repos.git
  branch_prefix: duel-
Enter fullscreen mode Exit fullscreen mode

Code Samples

Python – Simple Fibonacci Duel

def fib(n: int) -> int:
    a, b = 0, 1
    for _ in range(n):
        a, b = b, a + b
    return a

print(fib(10))
Enter fullscreen mode Exit fullscreen mode

Run the snippet inside a duel and ask the AI to refactor it into a recursive version. Accept the suggestion, then let the sandbox execute the new code to verify output.

TypeScript – Express Endpoint

import express from "express";

const app = express();
app.get("/hello/:name", (req, res) => {
  const { name } = req.params;
  res.send(`Hello, ${name}!`);
});

app.listen(3000, () => console.log("Server running on :3000"));
Enter fullscreen mode Exit fullscreen mode

During the duel, request the AI to add basic input validation and unit tests with Jest.

Go – Concurrent Worker Pool

package main

import (
    "fmt"
    "sync"
)

func worker(id int, wg *sync.WaitGroup) {
    defer wg.Done()
    fmt.Printf("worker %d starting\n", id)
    // simulate work
    fmt.Printf("worker %d done\n", id)
}

func main() {
    var wg sync.WaitGroup
    for i := 1; i <= 5; i++ {
        wg.Add(1)
        go worker(i, &wg)
    }
    wg.Wait()
}
Enter fullscreen mode Exit fullscreen mode

Ask the AI to add a context‑aware cancellation mechanism and benchmark the pool.


CI/CD Integration

GitHub Actions Workflow (.github/workflows/duel.yml)

name: Duel CI

on:
  push:
    branches:
      - duel-*

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - name: Install dependencies
        run: pip install -r requirements.txt
      - name: Run tests
        run: pytest
  deploy:
    needs: test
    runs-on: ubuntu-latest
    if: success()
    steps:
      - uses: actions/checkout@v4
      - name: Deploy to Fly.io
        uses: superfly/flyctl-actions@v1
        with:
          args: "deploy --remote-only"
Enter fullscreen mode Exit fullscreen mode

When a duel finishes, AgentMash creates a branch prefixed with duel-. The workflow automatically runs the test suite and, on success, pushes the code to Fly.io.

Fly.io fly.toml (minimal)

app = "agentmash-duel"
kill_signal = "SIGINT"
kill_timeout = 5

[[services]]
  internal_port = 8080
  protocol = "tcp"

  [[services.ports]]
    port = 80
Enter fullscreen mode Exit fullscreen mode

Security & Cost Considerations

Aspect Recommendation
Sandboxing Always enable AGENTMASH_SANDBOX. Use custom seccomp profiles for stricter syscall whitelisting.
API Usage Set AGENTMASH_MAX_TOKENS to cap LLM spend per duel (e.g., max_tokens: 2048).
Latency Deploy the LLM adapter in the same region as your developers (AWS us‑east‑1, GCP europe‑west1, etc.) to keep round‑trip < 150 ms.
Auditability The Session Manager logs every prompt/response pair to ~/.agentmash/logs/. Export logs to a SIEM for compliance.

Real‑World Use Cases

  1. On‑boarding Sprint – New hires pair with the AI to complete a starter ticket, producing a PR that passes all checks automatically.
  2. Hackathon Battles – Teams compete in 30‑minute coding duels; the winner’s branch is auto‑deployed to a preview environment for judges.
  3. Automated Code Review – Senior engineers launch a “review duel” where the AI suggests improvements; the engineer accepts only the best suggestions, accelerating the PR cycle by ~40 %.

Frequently Asked Questions

Question Answer
Do I need an OpenAI API key to run AgentMash locally? No. The built‑in grok-lite model works out‑of‑the‑box. Switch to OpenAI, Anthropic, or Grok by setting AGENTMASH_PROVIDER and the corresponding API key.
Can I enforce sandboxing for untrusted code? Yes. Set AGENTMASH_SANDBOX=true. The Docker‑in‑Docker sandbox enforces CPU, memory, network, and seccomp limits defined in agentmash.yaml.
How does AgentMash sync with my Git workflow? The Git Sync Daemon mirrors each duel to a temporary branch (duel-<id>). When the duel ends, a pull request is auto‑generated, and you can attach any CI pipeline you already use.
What languages are supported? Python, JavaScript/TypeScript, Go, Rust, Java, and any language that the selected LLM can understand.
Is there a hosted SaaS version? AgentMash offers a managed cloud service (agentmash.com) with autoscaling sandboxes and enterprise SSO. The open‑source CLI works independently of the SaaS.

Wrap‑Up

AgentMash turns AI from a passive assistant into an active teammate that can compete, collaborate, and review code in real time. By combining low‑latency WebSockets


Herramienta mencionada: Groq Cloud

Top comments (0)