Update claude-teams blog: link to Claude docs, mention auto env setup (#2426)

* Link to Claude agent-teams docs, mention auto env var setup

* Add 0.63.0 changelog feature highlights

* Simplify GPL blog post to one paragraph

* Remove nightly-only warning from claude-teams and omo docs

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
This commit is contained in:
Lawrence Chen 2026-03-31 05:28:40 -07:00 committed by GitHub
parent 51fe28e45d
commit 5835bff110
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 43 additions and 25 deletions

View file

@ -62,6 +62,9 @@ export default function CmuxClaudeTeamsPage() {
<p className="mt-6">
{t.rich("p1", {
code: (chunks) => <code>{chunks}</code>,
agentTeamsLink: (chunks) => (
<a href="https://code.claude.com/docs/en/agent-teams">{chunks}</a>
),
})}
</p>
<p>

View file

@ -49,8 +49,6 @@ export default function GplPage() {
</time>
<p className="mt-6">{t("p1")}</p>
<p>{t("p2")}</p>
<p>{t("p3")}</p>
</>
);
}

View file

@ -29,7 +29,7 @@ export const blogPosts = [
title: "cmux is now GPL",
date: "2026-03-30",
summary:
"cmux relicensed from AGPL to GPL. Copyleft stays, corporate adoption gets easier.",
"cmux relicensed from AGPL-3.0 to GPL-3.0.",
},
{
slug: "cmd-shift-u",

View file

@ -1,8 +1,6 @@
import { useTranslations } from "next-intl";
import { getTranslations } from "next-intl/server";
import { CodeBlock } from "../../../components/code-block";
import { Callout } from "../../../components/callout";
import { Link } from "../../../../../i18n/navigation";
export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }) {
const { locale } = await params;
@ -20,12 +18,6 @@ export default function ClaudeCodeTeamsPage() {
<>
<h1>{t("title")}</h1>
<Callout type="warn">
{t.rich("nightlyWarning", {
nightly: (chunks) => <Link href="/nightly" className="underline">{chunks}</Link>,
})}
</Callout>
<p>{t("intro")}</p>
<video

View file

@ -1,8 +1,6 @@
import { useTranslations } from "next-intl";
import { getTranslations } from "next-intl/server";
import { CodeBlock } from "../../../components/code-block";
import { Callout } from "../../../components/callout";
import { Link } from "../../../../../i18n/navigation";
export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }) {
const { locale } = await params;
@ -20,12 +18,6 @@ export default function OhMyOpenCodePage() {
<>
<h1>{t("title")}</h1>
<Callout type="warn">
{t.rich("nightlyWarning", {
nightly: (chunks) => <Link href="/nightly" className="underline">{chunks}</Link>,
})}
</Callout>
<p>{t("intro")}</p>
<video

View file

@ -26,6 +26,41 @@ export interface VersionMedia {
}
export const changelogMedia: Record<string, VersionMedia> = {
"0.63.0": {
title: "SSH, Claude Code Teams, oh-my-openagent, Browser Import, Minimal Mode",
features: [
{
title: "SSH",
description:
"cmux ssh user@remote creates a workspace for a remote machine. Browser panes route through the remote network so localhost just works. Drag an image into a remote session to upload via scp. Coding agent notifications come home to your local sidebar. Reconnects on drops.",
},
{
title: "Claude Code Teams",
description:
"cmux claude-teams launches Claude Code's experimental teammate mode with one command. It sets up the environment, fakes a tmux session, and translates tmux commands into native cmux splits. Teammates stack vertically in a right column with sidebar metadata and notifications.",
},
{
title: "oh-my-openagent",
description:
"cmux omo integrates oh-my-openagent (formerly oh-my-opencode), which orchestrates specialist agents across Claude, GPT, and Gemini in parallel. Same tmux shim as claude-teams, auto-installs the plugin, notifications route through cmux.",
},
{
title: "Browser Profile Import",
description:
"Import cookies, history, and sessions from Chrome, Arc, Brave, Firefox, Safari, and 20+ browsers. The import wizard detects installed browsers, lets you pick profiles, and injects everything into cmux's browser panes so you're already logged in.",
},
{
title: "Minimal Mode",
description:
"Hide the titlebar for a distraction-free terminal. Controls move to the sidebar and appear on hover. Toggle from the command palette or Settings.",
},
{
title: "Custom Commands",
description:
"Define project-specific actions in cmux.json that launch from the command palette. One file per repo, no global config needed.",
},
],
},
"0.62.0": {
title: "Markdown Viewer, Browser Find, Vi Copy Mode, and Localization",
features: [

View file

@ -122,7 +122,7 @@
},
"gpl": {
"metaTitle": "cmux is now GPL",
"metaDescription": "cmux relicensed from AGPL to GPL. Copyleft stays, corporate adoption gets easier."
"metaDescription": "cmux relicensed from AGPL-3.0 to GPL-3.0."
},
"cmuxSsh": {
"metaTitle": "cmux SSH",
@ -145,7 +145,7 @@
"title": "Claude Code teammate agents as native cmux panes",
"summary": "Claude Code's teammate mode requires tmux. cmux fakes it so teammates become native splits with sidebar metadata and notifications.",
"date": "March 30, 2026",
"p1": "Claude Code has an experimental teammate mode that spawns sub-agents in parallel. It manages them by issuing tmux commands (<code>split-window</code>, <code>send-keys</code>, <code>capture-pane</code>, <code>select-layout</code>), so if you're not in tmux, it doesn't work. <code>cmux claude-teams</code> places a shim on PATH that intercepts every tmux call and translates it into cmux's split/workspace API. It sets a fake <code>TMUX</code> env var so Claude thinks it's in tmux, then execs into <code>claude --teammate-mode auto</code>.",
"p1": "Claude Code has an experimental <agentTeamsLink>teammate mode</agentTeamsLink> that spawns sub-agents in parallel. It requires tmux and setting <code>CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1</code>. <code>cmux claude-teams</code> handles all of that for you: it sets the env var, places a tmux shim on PATH that translates every tmux command (<code>split-window</code>, <code>send-keys</code>, <code>capture-pane</code>) into cmux's native split/workspace API, and execs into <code>claude --teammate-mode auto</code>. One command.",
"p2": "The shim translates <code>split-window</code> into <code>surface.split</code>, <code>send-keys</code> into <code>surface.send_text</code>, <code>capture-pane</code> into <code>surface.read_text</code>. Teammates stack vertically in a right column, auto-equalizing as agents spawn and exit. Every pane shows up in the sidebar with notifications. Works over SSH via the Go relay daemon.",
"p3": "The same shim powers <omoLink><code>cmux omo</code></omoLink> for oh-my-openagent (formerly oh-my-opencode)."
},
@ -158,11 +158,9 @@
},
"gpl": {
"title": "cmux is now GPL",
"summary": "cmux relicensed from AGPL to GPL. Copyleft stays, corporate adoption gets easier.",
"summary": "cmux relicensed from AGPL-3.0 to GPL-3.0.",
"date": "March 30, 2026",
"p1": "cmux was AGPL-3.0. AGPL's network-use clause (Section 13) is designed for server software, requiring anyone who runs a modified version over a network to publish their source. cmux is a desktop app. Nobody runs cmux over a network. But several companies emailed us saying their org has a blanket AGPL ban, blocking adoption entirely.",
"p2": "We relicensed to GPL-3.0. GPL still requires any distributed fork to publish its full source under GPL, which prevents proprietary commercial forks. It drops only the network-use clause, which cmux never needed. This matches Zed's approach: GPL for the editor, AGPL only for server components.",
"p3": "The dual-license structure stays the same: GPL for open source, commercial license available for organizations that can't do GPL. Copyright stays with Manaflow. Personal and experimental forks remain fully allowed."
"p1": "cmux relicensed from AGPL-3.0 to GPL-3.0. AGPL's network-use clause is irrelevant for a desktop app, but many companies ban AGPL entirely. GPL drops that clause while still requiring forks to stay open source. Dual-license (GPL + commercial) stays the same."
},
"cmuxSsh": {
"title": "cmux SSH",