Skip to content

Releases: bcurts/agentchattr

v0.3.2

19 Mar 21:37

Choose a tag to compare

What's new

Help guide overlay

A rich visual guide that teaches every feature with interactive mockups. Shows on first visit or anytime via the ? button in the header.

  • Full-page layout with cards positioned near their anchor UI elements
  • Visual mockups for Agents (status pills), Jobs (convert to job + sidebar), Rules (active/draft states), Channels, Sessions (templates + custom), Scheduling (one-time + recurring), and Mentions
  • Spotlight rings highlight the real UI controls each card explains
  • Responsive — wraps at narrow widths, falls back to a scrollable modal below 900px
  • Auto-shows on first visit, then accessible via the ? button anytime

Project MCP server merging

Gemini and Kimi agents now automatically inherit MCP servers from the project's .mcp.json file. If your project has other MCP tools configured, agents get access to them alongside agentchattr.

MiniMax M2.7

Default MiniMax model upgraded from M2.5 to M2.7. (Thanks @NoRain211)

Bug fixes

  • @ALL agents now only triggers online agents, not every configured agent
  • Disconnect notices now only appear in the last active channel instead of every channel
  • Agent crash timeout reduced from 60s to 15s for faster cleanup
  • Session prompt injection fixed — long prompts no longer break due to paste detection. Uses batch WriteConsoleInput on Windows and scaled delays
  • Removed unnecessary logging — activity debug/report log files no longer written to disk

Upgrading

To update from a previous version, download the zip and drag the files over your existing installation. Your data (messages, jobs, rules, schedules, settings) is stored in the data/ folder and will not be affected.

v0.3.1: Inline decision cards, bug fixes

17 Mar 23:22

Choose a tag to compare

Features

  • Inline decision cards — agents include choices via chat_send(choices=[...]), rendered as clickable buttons inside the message bubble. Clicking posts a tagged reply. Agent-coloured buttons with fade animation on resolve. Based on the design from PR #35 by @BlazingFV.

Bug fixes

  • Fix angle brackets showing as > and < in chat messages (#43)
  • Fix imported job breadcrumbs losing navigation after ID remap (#44)
  • Fix send button not lighting up during voice typing

v0.3.0 - Project History & Agent Customization

15 Mar 19:24

Choose a tag to compare

v0.3.0 — Project History & Agent Customization

Project History (Export / Import)

  • Export your full chat history, jobs, rules, and summaries as a portable zip archive
  • Import on another machine — new records are merged in, duplicates skipped automatically
  • Idempotent: importing the same archive twice changes nothing
  • Imported messages are treated as history — they don't wake agents or trigger work
  • New channels in the archive are auto-created on import
  • Settings → Project History for both buttons
  • UUID-based dedup ensures reliable cross-machine identity

Agent Color Picker

  • Click any agent's status pill to customize their color
  • 14 preset swatches in gradient order + native color picker for custom colors
  • Current color highlighted — works for both preset and custom colors
  • Colors persist in localStorage and update pills, mentions, avatars, and chat bubbles instantly
  • Reset button restores the default
  • Community contribution for most of the work by @kev5684

MiniMax Agent Support

  • MiniMax added as a built-in cloud API agent (MiniMax-M2.5, 204K context)
  • Launchers for Windows and Mac/Linux with API key validation
  • Temperature config field added to wrapper_api.py (benefits all API agents)
  • Community contribution by @octo-patch

Fixes & Polish

  • Fixed double-broadcast of rule proposal cards in WebSocket handler
  • Gemini CLI launcher warns if ripgrep is missing (upstream hang bug)
  • Composer image thumbnails now clickable (opens full preview)
  • Channel bar centering via CSS grid (no more JS measurement flicker)
  • Support button collapse via CSS container queries (clean binary toggle)
  • Toast notification system for export/import feedback

Full changelog: v0.2.2...v0.3.0

v0.2.2

12 Mar 03:42

Choose a tag to compare

v0.2.2 — UX Cleanup & New Agent Support

New Agent Support

  • Kilo CLI and Qwen added to README, config samples, and MCP instructions
  • Kilo agent color corrected in UI

Role Setting from Status Pill

  • Click any agent's status pill to open a popover with rename + role assignment
  • Save custom roles — they persist across sessions via server settings
  • Delete custom roles with hover-reveal trash icon and red confirm state
  • Roles clamped to 20 characters; deleting a role auto-unassigns it from all agents

UX Fixes

  • Chat bubble min-width increased to prevent convert-to-job card overlap
  • Support pill collapses to heart icon when channel tabs fill the bar (with hysteresis to prevent flicker)
  • Inline channel rename — input appears at the tab's position, not at the far right
  • System status message shown when requesting job cards

Full changelog: v0.2.1...v0.2.2

v0.2.1 - Scheduled & recurring messages

08 Mar 17:43

Choose a tag to compare

New: Scheduled & recurring messages

Slack-style split send button with clock icon opening a schedule popover. One-shot and recurring message scheduling with inline pause/delete controls. Schedules persist across server restarts.

What's new:

  • Split send button with clock icon → schedule popover dialog
  • One-shot (specific date/time) and recurring (every N minutes/hours/days) scheduling
  • Schedule strip above composer showing active/paused schedules with inline controls
  • Proactive validation — Schedule button disabled with yellow warning when no agent is toggled
  • Green flash confirmation on schedule creation
  • Scheduled messages fire as real chat messages from the creator, triggering @mentioned agents
  • Schedules survive server restarts (JSON persistence)

Bug fixes:

  • Interval schedules no longer fire immediately on creation
  • Scheduled messages no longer double-trigger agents

Co-authored by BlazingFV — based on their original /schedule command PR.

v0.2.0 - UX improverments

08 Mar 07:17

Choose a tag to compare

This release improves the Sessions workflow, makes proposal cards and system artifacts easier to manage, adds cross-channel notifications, and introduces update notifications for new GitHub releases.

Highlights

  • Session UX improvements: cleaner session proposal cards, better custom-session drafting flow, and improved session-related UI states
  • Proposal flow polish: session, rule, and job proposal cards are more consistent and easier to scan
  • Deletable system artifacts: more session/job/rule-generated timeline artifacts now behave properly with delete mode and cleanup flows
  • Cross-channel notifications: better awareness when activity happens outside the current channel
  • Update notifications: a small release pill now appears when a newer GitHub release is available
  • Kimi support: adds Kimi as a built-in agent option
  • Windows launcher hardening: all agent launchers now check for the CLI on PATH and keep the window open on failure

Under the hood

  • Major frontend modularization of the chat monolith
  • CSS token and dedup pass for cleaner styling foundations
  • Local-only hardening for agent registration endpoints
  • General cleanup and bug fixes across sessions, rules, jobs, and notifications

Notes

  • This release includes update notifications, not auto-update
  • The update pill links to the latest GitHub release and can be dismissed until a newer release appears

v0.1.0 -- Multi-agent chat for your dev team with channels, threads, rules, and structured sessions

07 Mar 08:03

Choose a tag to compare

agentchattr

Windows macOS Linux Python 3.11+ Discord

A local chat server for real-time coordination between AI coding agents and humans. Ships with built-in support for Claude Code, Codex, and Gemini CLI — and any MCP-compatible agent can join.

Agents and humans talk in a shared chat room with multiple channels — when anyone @mentions an agent, the server auto-injects a prompt into that agent's terminal, the agent reads the conversation and responds, and the loop continues hands-free. No copy-pasting between ugly terminals. No manual prompting.

This is an example of what a conversation might look like if you really messed up.

screenshot

Quickstart (Windows)

1. Open the windows folder and double-click a launcher:

  • start.bat — starts the chat server only
  • start_claude.bat — starts Claude (and the server if it's not already running)
  • start_codex.bat — starts Codex (and the server if it's not already running)
  • start_gemini.bat — starts Gemini (and the server if it's not already running)

On first launch, the script auto-creates a virtual environment, installs Python dependencies, and configures MCP. Each agent launcher auto-starts the server if one isn't already running, so you can launch in any order. Run multiple launchers for multiple agents — they share the same server.

Auto-approve launchers (agents run tools without asking permission):

  • start_claude_skip-permissions.bat — Claude with --dangerously-skip-permissions
  • start_codex_bypass.bat — Codex with --dangerously-bypass-approvals-and-sandbox
  • start_gemini_yolo.bat — Gemini with --yolo

2. Open the chat: Go to http://localhost:8300 in your browser, or double-click open_chat.html.

3. Talk to your agents: Type @claude, @codex, or @gemini in your message, or use the toggle buttons above the input. The agent will wake up, read the chat, and respond.

Tip: To manually prompt an agent to check chat, type mcp read #general in their terminal.

Quickstart (Mac / Linux)

1. Make sure tmux is installed:

brew install tmux    # macOS
# apt install tmux   # Ubuntu/Debian

2. Launch an agent:

Open a terminal in the macos-linux folder (right-click → "Open Terminal Here", or cd into it) and run:

  • sh start.sh — starts the chat server only
  • sh start_claude.sh — starts Claude (and the server if it's not already running)
  • sh start_codex.sh — starts Codex (and the server if it's not already running)
  • sh start_gemini.sh — starts Gemini (and the server if it's not already running)

On first launch, the script auto-creates a virtual environment, installs Python dependencies, and configures MCP. Each agent launcher auto-starts the server in a separate terminal window if one isn't already running. The agent opens inside a tmux session. Detach with Ctrl+B, D — the agent keeps running in the background. Reattach with tmux attach -t agentchattr-claude.

Auto-approve launchers (agents run tools without asking permission):

  • start_claude_skip-permissions.sh — Claude with --dangerously-skip-permissions
  • start_codex_bypass.sh — Codex with --dangerously-bypass-approvals-and-sandbox
  • start_gemini_yolo.sh — Gemini with --yolo

3. Open the chat: Go to http://localhost:8300 or open open_chat.html.

4. Talk to your agents: Type @claude, @codex, or @gemini in your message, or use the toggle buttons above the input. The agent will wake up, read the chat, and respond.


How it works

You type "@claude what's the status on the renderer?"
  → server detects the @mention
  → wrapper injects "mcp read #general" into Claude's terminal
  → Claude reads recent messages, sees your question, responds in the channel
  → If Claude @mentions @codex, the same happens in Codex's terminal
  → Agents go back and forth until the loop guard pauses for your review

No copy-pasting between terminals. No manual prompting.
Agents wake each other up, coordinate, and report back.

agentchattr gang
the gang after /hatmaking

Features

Agent-to-agent communication

Agents @mention each other and the server auto-triggers the target. Claude can wake Codex, Codex can respond back, Gemini can jump in — all autonomously. A per-channel loop guard pauses after N hops to prevent runaway conversations — a busy channel won't block other channels. Human @mentions always pass through, even when the loop guard is active. Type /continue to resume.

Channels

Conversations are organized into channels (like Slack). The default channel is #general. Create new channels by clicking the + button in the channel bar, rename or delete them by clicking the active tab to reveal edit controls. Channels persist across server restarts.

Agents interact with channels via MCP: chat_send(channel="debug"), chat_read(channel="debug"). Omitting the channel parameter in chat_read returns messages from all channels. The chat_channels tool lets agents discover available channels.

When agents are triggered by an @mention, the wrapper injects mcp read #channel-name so the agent reads the right channel automatically. Join/leave messages are broadcast to all channels so agents always see presence changes regardless of which channel they're monitoring.

Jobs

Bounded work conversations — like Slack threads with status tracking. When a task comes up in chat, click convert to job on any message — the agent who wrote it will automatically reformat their message into a job proposal for you to Accept or Dismiss. You can also create jobs manually from the jobs panel. Jobs have a title, status (To Do → Active → Closed), and their own message thread.

When an agent is triggered with a job, it sees the full job context — title, status, and conversation history — so it can pick up exactly where the last agent left off. Jobs are visible regardless of which channel you're in.

Agents can also propose jobs directly via chat_propose_job — a proposal card appears in the timeline for you to Accept or Dismiss. The jobs panel opens from the header. Drag cards to reorder within a status group, click a card to open its conversation.

Agent roles

Assign roles to agents to steer their behavior — Planner, Builder, Reviewer, Researcher, or any custom role. Roles aren't a hard constraint — they're a persistent nudge. The wrapper appends their role to the prompt injected into their terminal. The agent sees this every time it wakes up, shaping how it approaches the task.

Click the role pill in any message header to open the picker — choose from presets or type a custom role. Roles are global per agent (not per-channel), persist across server restarts, and update instantly across all messages. Clear a role by selecting "None".

Rules

Rules set the working style for your agents. Agents can propose rules via MCP (chat_rules(action='propose')), or you can add one directly from the Rules panel with +. Proposed rules appear as cards in the chat timeline, where you can Activate, Add to drafts, or Dismiss them.

The Rules panel opens from the header. Rules are grouped into Active, Drafts, and Archive. Active rules are sent to agents on their next trigger, then re-sent when rules change or according to the Rule refresh setting. Click any rule to edit it, drag between groups to change status, and drag archived rules to the trash to delete them. A soft warning appears at 7+ active rules, because a smaller set tends to work better.

Remind agents re-sends the current rules on the next trigger. The badge on the Rules button shows unseen proposals only. Max 160 chars per rule.

Sessions

Structured multi-agent workflows with sequential phases, role casting, and turn-taking. Sessions let you orchestrate a specific flow -- like a code review, debate, or planning session -- where agents take turns in defined roles with tailored prompts.

Built-in templates: Code Review, Debate, Design Critique, and Planning. Click the play button in the input area to open the launcher, pick a template, review the auto-cast, and start.

Custom sessions: Click "Design a session" in the launcher, pick an agent, and describe what you want. The agent proposes a session draft as a card in the timeline. From there:

  • Run -- opens a cast preview where you assign agents to roles, then starts the session
  • Save Template -- saves the draft as a reusable template in the launcher
  • Request Changes -- inline feedback form; the agent revises and the old draft is superseded
  • Dismiss -- grey out the card

During a session, phase banners mark transitions in the timeline, a sticky session bar shows progress, and agents are triggered sequentially with phase-specific prompts. The output phase is highlighted when the session completes.

Sessions are channel-scoped (one active per channel) and survive page refreshes. Custom templates persist across restarts.

Activity indicators

Status pills show a spinning border in each agent's color when that agent is actively working — so you can minimize the terminals and still know at a glance who's busy. Detection works by hashing the agent's terminal screen buffer every second: if anything changes (spinner, streaming text, tool output), the pill lights up. When the scre...

Read more