diff --git a/blog/src/_data/media.json b/blog/src/_data/media.json index 1f77259780..46addc7f9d 100644 --- a/blog/src/_data/media.json +++ b/blog/src/_data/media.json @@ -5181,6 +5181,17 @@ }, "inline": {} }, + "claude-cowork-alternatives": { + "title": "Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included", + "category": "comparisons", + "hero": { + "file": "assets/media/claude-cowork-alternatives/hero.png", + "alt": "Title card on white. A pill reading Comparisons, the title Claude Cowork alternatives, the line Six agents for office work and a Checked 27 Oct 2026 line. Beside them a white card labelled Claude Cowork with a small arrow to a fan of six small cards, the first two tinted yellow and lilac.", + "prompt": "Title card: the hero scene in assets/media/claude-cowork-alternatives/motion.js, shot at 1600 by 900.", + "status": "ready" + }, + "inline": {} + }, "claude-duet-vs-munder-difflin": { "title": "Claude Duet vs Munder Difflin: One Agent in the Cloud or a Team on Your Computer", "category": "comparisons", @@ -5282,6 +5293,18 @@ "inline": {}, "youtube": [] }, + "agent-tools-today-2026-10-27": { + "title": "Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1", + "category": "news", + "hero": { + "file": "assets/media/agent-tools-today/hero.png", + "alt": "Hand drawn sketch: a front page with five numbered lines, a clock, and a yellow character reading it out", + "prompt": "Series hero for the Agent Tools Today daily brief, drawn in code (media-src/topic-tiles.html?t=news). Reused by every brief.", + "status": "ready" + }, + "inline": {}, + "youtube": [] + }, "codex-alternatives": { "title": "Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)", "category": "comparisons", diff --git a/blog/src/assets/media/agent-tools-today-2026-10-27/motion.css b/blog/src/assets/media/agent-tools-today-2026-10-27/motion.css new file mode 100644 index 0000000000..8cfca96d6b --- /dev/null +++ b/blog/src/assets/media/agent-tools-today-2026-10-27/motion.css @@ -0,0 +1,13 @@ +/* Bright coded scene for "Agent tools today, 27 Oct 2026". Pairs with motion.js. */ +.prose figure.mg { margin: 42px 0; } +.prose figure.mg img, .mg .mg-svg { display: block; width: 100%; height: auto; border: 1px solid #1A1320; border-radius: 18px; background: #fff; } +.mg figcaption { font: 500 13px/1.5 "Space Grotesk", system-ui, sans-serif; color: #6B5878; padding-top: 10px; text-align: center; } +.mg .mg-svg { touch-action: manipulation; -webkit-tap-highlight-color: transparent; } +.mg .mg-svg text { -webkit-user-select: none; user-select: none; pointer-events: none; } +.mg .mg-hit { cursor: pointer; outline: none; } +.mg [role="slider"] { cursor: grab; touch-action: none; } +.mg .mg-ring { stroke-opacity: 0; transition: stroke-opacity 0.15s; } +.mg .mg-hit:focus-visible .mg-ring { stroke-opacity: 1; } +.mg [role="slider"]:focus-visible circle:nth-child(2) { stroke-width: 5; } +@media (hover: hover) { .mg .mg-hit:hover .mg-ring { stroke-opacity: 0.5; } } +@media (prefers-reduced-motion: reduce) { .mg .mg-ring { transition: none; } } diff --git a/blog/src/assets/media/agent-tools-today-2026-10-27/motion.js b/blog/src/assets/media/agent-tools-today-2026-10-27/motion.js new file mode 100644 index 0000000000..9e4bd8f159 --- /dev/null +++ b/blog/src/assets/media/agent-tools-today-2026-10-27/motion.js @@ -0,0 +1,188 @@ +/* Bright coded scene for "Agent tools today, 27 Oct 2026". Vanilla JS, no library. +
holds a still image; this script swaps in a live SVG. + Plays only in view, honours reduced motion, "?mgstill" freezes each scene on its still frame. */ +(() => { + const NS = "http://www.w3.org/2000/svg"; + const INK = "#1A1320", YEL = "#FFCA54", BLUE = "#6C8EF5", LIL = "#B69CFF", MINT = "#7FD8AE", SKY = "#9AD8FF", SOFT = "#F1ECF9", MUTE = "#7A6A88"; + const SANS = '"Space Grotesk", system-ui, sans-serif', MONO = '"JetBrains Mono", ui-monospace, monospace'; + const el = (t, a = {}, p) => { const n = document.createElementNS(NS, t); for (const k in a) n.setAttribute(k, a[k]); if (p) p.appendChild(n); return n; }; + const txt = (p, x, y, s, a = {}) => { const n = el("text", Object.assign({ x, y, "font-family": SANS, "font-size": 24, "font-weight": 600, fill: INK }, a), p); n.textContent = s; return n; }; + const cl = (v, a = 0, b = 1) => Math.max(a, Math.min(b, v)); + const seg = (t, a, b) => cl((t - a) / (b - a)); + const oc = (x) => 1 - Math.pow(1 - x, 3); + const ob = (x) => { const c = 1.70158; return 1 + (c + 1) * Math.pow(x - 1, 3) + c * Math.pow(x - 1, 2); }; + const io = (x) => (x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2); + const tf = (n, x, y, s = 1, r = 0) => n.setAttribute("transform", `translate(${x} ${y}) rotate(${r}) scale(${s})`); + const button = (g, label, fn) => { + g.setAttribute("role", "button"); g.setAttribute("tabindex", "0"); g.setAttribute("aria-label", label); g.classList.add("mg-hit"); + g.addEventListener("click", fn); + g.addEventListener("keydown", (e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); fn(); } }); + }; + + const SC = {}; + + /* ---- a laptop runs an open weight model on its own: Files go in, a Chart comes out, and the Web search switch cuts the dotted line to Online ---- */ + SC.today = { + w: 1600, h: 1200, dur: 11, still: 9.6, + build(svg, api) { + const A = (o) => Object.assign({ stroke: INK, "stroke-width": 4, "stroke-linejoin": "round", "stroke-linecap": "round" }, o); + const lp = (a, b, p) => a + (b - a) * p; + /* geometry */ + const LX = 440, LW = 720, LT = 480, HINGE = 860, CX = 800, CHX = 900, CHY = 670, FY = 670; + const SWX = 850, SWY = 338, SWW = 132, SWH = 66; + const LINE_TOP = 272, LINE_BOT = LT - 10; + /* beats, in seconds */ + const T_LINE = 0.7, T_SW = 0.9, T_FOLD = 1.4, T_SLIDE = 2.4, T_PULSE = 3.8, T_OUT = 4.6, T_BARS = 5.5, T_OFF = 7.0; + + /* the whole picture sits 50 lower so it is centred top to bottom */ + const inner = el("g", { transform: "translate(0 50)" }, svg); + const defs = el("defs", {}, svg); + + /* the dotted line from the cloud down to the laptop; it grows in, then dots flow down it */ + const lclip = el("clipPath", { id: "mg-today-line" }, defs); + const lrect = el("rect", { x: CX - 20, y: LINE_TOP - 10, width: 40, height: 0 }, lclip); + const lineG = el("g", { "clip-path": "url(#mg-today-line)" }, inner); + const line = el("path", { d: `M ${CX} ${LINE_TOP} V ${LINE_BOT}`, fill: "none", stroke: BLUE, "stroke-width": 10, "stroke-linecap": "round", "stroke-dasharray": "1 19" }, lineG); + + /* the cloud, labelled Online */ + const cloud = el("g", {}, inner); + el("path", A({ d: "M640 270 A70 70 0 0 1 620 140 A95 95 0 0 1 790 80 A110 110 0 0 1 960 130 A80 80 0 0 1 980 270 Z", fill: SKY }), cloud); + txt(cloud, CX, 214, "Online", { "text-anchor": "middle", "font-size": 46, "font-weight": 700 }); + + /* the Chart sheet waits behind the screen, so it is drawn before the laptop */ + const sheet = el("g", {}, inner); + el("rect", A({ x: -100, y: -125, width: 200, height: 250, rx: 16, fill: "#fff" }), sheet); + txt(sheet, 0, -74, "Chart", { "text-anchor": "middle", "font-size": 36, "font-weight": 700 }); + const BARS = [[-66, 60, BLUE], [-28, 100, MINT], [10, 76, YEL], [48, 130, LIL]]; + const bars = BARS.map(([x, h, f]) => ({ h, n: el("rect", A({ x, y: 95, width: 28, height: 0, rx: 5, fill: f, "stroke-width": 3 }), sheet) })); + el("path", A({ d: "M-78 95 H80", fill: "none", "stroke-width": 3.5 }), sheet); + + /* the laptop, labelled Your computer */ + const laptop = el("g", {}, inner); + el("path", A({ d: `M${LX - 40} ${HINGE} H${LX + LW + 40} L${LX + LW + 74} ${HINGE + 46} Q${LX + LW + 78} ${HINGE + 56} ${LX + LW + 66} ${HINGE + 56} H${LX - 66} Q${LX - 78} ${HINGE + 56} ${LX - 74} ${HINGE + 46} Z`, fill: SOFT }), laptop); + txt(laptop, CX, HINGE + 128, "Your computer", { "text-anchor": "middle", "font-size": 46, "font-weight": 700 }); + el("rect", A({ x: LX, y: LT, width: LW, height: HINGE - LT, rx: 24, fill: BLUE }), laptop); + el("rect", A({ x: LX + 22, y: LT + 22, width: LW - 44, height: HINGE - LT - 44, rx: 12, fill: "#fff", "stroke-width": 3 }), laptop); + + /* the chip, labelled Open weight model, with pins that light up while it works */ + const chip = el("g", {}, laptop); + const pinsInk = el("g", {}, chip), pinsLit = el("g", { opacity: 0 }, chip); + for (let i = 0; i < 8; i++) { + const x = -160 + i * 44 - 7; + [[-83, pinsInk, INK], [65, pinsInk, INK], [-83, pinsLit, YEL], [65, pinsLit, YEL]].forEach(([y, g, f]) => el("rect", A({ x, y, width: 14, height: 18, rx: 3, fill: f, "stroke-width": 2.5 }), g)); + } + el("rect", A({ x: -190, y: -65, width: 380, height: 130, rx: 18, fill: LIL }), chip); + txt(chip, 0, 12, "Open weight model", { "text-anchor": "middle", "font-size": 33, "font-weight": 700 }); + + /* the folder, labelled Files; it slides over the frame into the screen, so it is drawn after the laptop */ + const folder = el("g", {}, inner); + el("path", A({ d: "M-95 68 V-78 Q-95 -85 -88 -85 H-30 L-14 -68 H88 Q95 -68 95 -61 V68 Q95 75 88 75 H-88 Q-95 75 -95 68 Z", fill: YEL }), folder); + el("rect", A({ x: -74, y: -60, width: 148, height: 40, rx: 6, fill: "#fff", "stroke-width": 3 }), folder); + el("rect", A({ x: -95, y: -46, width: 190, height: 121, rx: 10, fill: YEL }), folder); + txt(folder, 0, 32, "Files", { "text-anchor": "middle", "font-size": 38, "font-weight": 700 }); + + /* the Web search switch beside the line: mint and knob right when on, soft and knob left when off */ + const sw = el("g", {}, inner), swFace = el("g", {}, sw); + el("rect", { x: SWX - 12, y: SWY - 12, width: SWW + 24 + 250, height: SWH + 24, rx: (SWH + 24) / 2, fill: "none", stroke: INK, "stroke-width": 3, "stroke-dasharray": "10 8", class: "mg-ring" }, swFace); + el("rect", { x: SWX - 12, y: SWY - 12, width: SWW + 24 + 250, height: SWH + 24, rx: (SWH + 24) / 2, fill: "#fff", opacity: 0 }, swFace); + el("rect", A({ x: SWX, y: SWY, width: SWW, height: SWH, rx: SWH / 2, fill: SOFT, "stroke-width": 3.5 }), swFace); + const swOn = el("rect", A({ x: SWX, y: SWY, width: SWW, height: SWH, rx: SWH / 2, fill: MINT, "stroke-width": 3.5 }), swFace); + const knob = el("circle", A({ cx: SWX + SWW - SWH / 2, cy: SWY + SWH / 2, r: 24, fill: "#fff", "stroke-width": 3.5 }), swFace); + txt(swFace, SWX + SWW + 26, SWY + SWH / 2 + 13, "Web search", { "font-size": 38, "font-weight": 600 }); + + /* tap the switch, or Enter or Space on it: Web search flips, and the dotted line follows */ + let user = false, from = 1, to = 1, at = -99, kv = 1, last = 0; + button(sw, "Web search", () => { + from = kv; to = kv < 0.5 ? 1 : 0; user = true; + at = calm || frozen ? -99 : api.now(); + sw.setAttribute("aria-checked", to ? "true" : "false"); + if (calm || frozen) D(last, api.now()); + }); + sw.setAttribute("role", "switch"); + sw.setAttribute("aria-checked", "true"); + + const pop = (n, p, x, y, s = 1) => { tf(n, x, y, (s * ob(p)).toFixed(3)); n.setAttribute("opacity", p > 0 ? 1 : 0); }; + const D = (t, now = 0) => { + last = t; + inner.setAttribute("opacity", (oc(seg(t, 0, 0.3)) * (1 - io(seg(t, 10.4, 10.9)))).toFixed(3)); + laptop.setAttribute("opacity", io(seg(t, 0.1, 0.5)).toFixed(3)); + cloud.setAttribute("opacity", io(seg(t, 0.2, 0.6)).toFixed(3)); + sw.setAttribute("opacity", io(seg(t, T_SW, T_SW + 0.4)).toFixed(3)); + + /* switch value: the timeline flips it off once; after a tap it is the reader's */ + let lv; + if (user) { + const d = now - at; + kv = lp(from, to, io(seg(d, 0, 0.35))); + lv = lp(from, to, io(seg(d, 0.05, 0.6))); + } else { + kv = 1 - io(seg(t, T_OFF, T_OFF + 0.4)); + lv = 1 - io(seg(t, T_OFF + 0.1, T_OFF + 0.9)); + } + knob.setAttribute("cx", lp(SWX + SWH / 2, SWX + SWW - SWH / 2, kv).toFixed(1)); + swOn.setAttribute("opacity", kv.toFixed(3)); + sw.setAttribute("aria-checked", kv >= 0.5 ? "true" : "false"); + + /* the dotted line grows down to the laptop, dots flow while it is on, and it fades when Web search is off */ + lrect.setAttribute("height", ((LINE_BOT - LINE_TOP + 20) * io(seg(t, T_LINE, T_LINE + 0.7))).toFixed(1)); + line.setAttribute("stroke-dashoffset", (-(t * 40) % 20).toFixed(2)); + lineG.setAttribute("opacity", lp(0.22, 1, lv).toFixed(3)); + + /* the folder pops in on the left, then slides into the screen */ + const sp = io(seg(t, T_SLIDE, T_SLIDE + 1.2)); + pop(folder, seg(t, T_FOLD, T_FOLD + 0.45), lp(240, 585, sp), FY, lp(1, 0.8, sp)); + + /* the chip works: a small bump and lit pins */ + const cp = seg(t, T_PULSE, T_PULSE + 0.8), bump = Math.sin(Math.PI * cp); + tf(chip, CHX, CHY, (1 + 0.06 * bump).toFixed(3)); + pinsLit.setAttribute("opacity", bump.toFixed(3)); + + /* the Chart sheet slides out of the right side, then its bars grow */ + const op = io(seg(t, T_OUT, T_OUT + 1.2)); + sheet.setAttribute("opacity", t >= T_OUT ? 1 : 0); + tf(sheet, lp(1000, 1340, op).toFixed(1), CHY, 1, 4 * Math.sin(Math.PI * op)); + bars.forEach((b, i) => { + const h = b.h * oc(seg(t, T_BARS + i * 0.18, T_BARS + i * 0.18 + 0.5)); + b.n.setAttribute("y", (95 - h).toFixed(1)); + b.n.setAttribute("height", h.toFixed(1)); + b.n.setAttribute("opacity", h > 0.5 ? 1 : 0); + }); + + swFace.setAttribute("transform", `translate(${SWX + SWW / 2} ${SWY + SWH / 2}) scale(${(1 - 0.05 * Math.sin(Math.PI * seg(now - at, 0, 0.2))).toFixed(3)}) translate(${-(SWX + SWW / 2)} ${-(SWY + SWH / 2)})`); + }; + return D; + }, + }; + + /* ---- player ---- */ + const q = new URLSearchParams(location.search), frozen = q.has("mgstill"), fixed = parseFloat(q.get("mgstill")); + const calm = matchMedia("(prefers-reduced-motion: reduce)").matches; + const mount = (fig) => { + const sc = SC[fig.dataset.scene], img = fig.querySelector("img"); if (!sc || !img) return; + const W = sc.w || 800, H = sc.h || 600; + const svg = el("svg", { viewBox: `0 0 ${W} ${H}`, class: "mg-svg", role: "group", "aria-label": img.alt || "" }); + svg.style.aspectRatio = `${W} / ${H}`; + el("rect", { width: W, height: H, fill: "#fff" }, svg); + img.replaceWith(svg); + let off = 0, raf = 0, seen = false, held = calm, once = false; + const base = performance.now(), clock = () => (performance.now() - base) / 1000; + let draw = () => {}; + /* "once": a replay asked for under reduced motion plays through one time, then holds on the still */ + const frame = () => { const now = clock(); if (once && now + off >= sc.still) { once = false; held = true; } draw(held ? sc.still : (((now + off) % sc.dur) + sc.dur) % sc.dur, now); }; + const tick = () => { cancelAnimationFrame(raf); frame(); if (seen && !held) raf = requestAnimationFrame(tick); }; + const api = { now: clock, seek: (s, hold) => { off = s - clock(); held = false; once = !!hold; tick(); }, poke: () => { held = false; tick(); }, redraw: () => frame() }; + draw = sc.build(svg, api); + if (frozen) { draw(isNaN(fixed) ? sc.still : fixed, 0); return; } + new IntersectionObserver(([e]) => { + seen = e.isIntersecting; + if (seen) { tick(); if (!fig.dataset.sent && window.posthog) { fig.dataset.sent = 1; window.posthog.capture("blog_scene_view", { slug: location.pathname.split("/").filter(Boolean).pop(), scene: fig.dataset.scene }); } } + else cancelAnimationFrame(raf); + }, { threshold: 0.25 }).observe(fig); + svg.addEventListener("click", () => { if (!fig.dataset.hit && window.posthog) { fig.dataset.hit = 1; window.posthog.capture("blog_scene_interact", { slug: location.pathname.split("/").filter(Boolean).pop(), scene: fig.dataset.scene }); } }); + frame(); + }; + const go = () => document.querySelectorAll("figure.mg[data-scene]").forEach(mount); + const fonts = document.fonts && document.fonts.load ? Promise.all([document.fonts.load('700 32px "Space Grotesk"'), document.fonts.load('500 20px "Space Grotesk"'), document.fonts.load('700 20px "JetBrains Mono"')]).catch(() => {}) : Promise.resolve(); + const start = () => fonts.then(go, go); + if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", start); else start(); +})(); diff --git a/blog/src/assets/media/agent-tools-today-2026-10-27/today.png b/blog/src/assets/media/agent-tools-today-2026-10-27/today.png new file mode 100644 index 0000000000..0e37b10242 Binary files /dev/null and b/blog/src/assets/media/agent-tools-today-2026-10-27/today.png differ diff --git a/blog/src/assets/media/claude-cowork-alternatives/hero.png b/blog/src/assets/media/claude-cowork-alternatives/hero.png new file mode 100644 index 0000000000..fc51d25f2d Binary files /dev/null and b/blog/src/assets/media/claude-cowork-alternatives/hero.png differ diff --git a/blog/src/assets/media/claude-cowork-alternatives/lineup.png b/blog/src/assets/media/claude-cowork-alternatives/lineup.png new file mode 100644 index 0000000000..2b3cb18945 Binary files /dev/null and b/blog/src/assets/media/claude-cowork-alternatives/lineup.png differ diff --git a/blog/src/assets/media/claude-cowork-alternatives/motion.css b/blog/src/assets/media/claude-cowork-alternatives/motion.css new file mode 100644 index 0000000000..a684cd92ff --- /dev/null +++ b/blog/src/assets/media/claude-cowork-alternatives/motion.css @@ -0,0 +1,13 @@ +/* Bright coded scenes for "Claude Cowork alternatives". Pairs with motion.js. */ +.prose figure.mg { margin: 42px 0; } +.prose figure.mg img, .mg .mg-svg { display: block; width: 100%; height: auto; border: 1px solid #1A1320; border-radius: 18px; background: #fff; } +.mg figcaption { font: 500 13px/1.5 "Space Grotesk", system-ui, sans-serif; color: #6B5878; padding-top: 10px; text-align: center; } +.mg .mg-svg { touch-action: manipulation; -webkit-tap-highlight-color: transparent; } +.mg .mg-svg text { -webkit-user-select: none; user-select: none; pointer-events: none; } +.mg .mg-hit { cursor: pointer; outline: none; } +.mg [role="slider"] { cursor: grab; touch-action: none; } +.mg .mg-ring { stroke-opacity: 0; transition: stroke-opacity 0.15s; } +.mg .mg-hit:focus-visible .mg-ring { stroke-opacity: 1; } +.mg [role="slider"]:focus-visible circle:nth-child(2) { stroke-width: 5; } +@media (hover: hover) { .mg .mg-hit:hover .mg-ring { stroke-opacity: 0.5; } } +@media (prefers-reduced-motion: reduce) { .mg .mg-ring { transition: none; } } diff --git a/blog/src/assets/media/claude-cowork-alternatives/motion.js b/blog/src/assets/media/claude-cowork-alternatives/motion.js new file mode 100644 index 0000000000..cfa1a07cd1 --- /dev/null +++ b/blog/src/assets/media/claude-cowork-alternatives/motion.js @@ -0,0 +1,267 @@ +/* Bright coded scenes for "Claude Cowork alternatives". Vanilla JS, no library. +
holds a still image; this script swaps in a live SVG. + Plays only in view, honours reduced motion, "?mgstill" freezes each scene on its still frame. */ +(() => { + const NS = "http://www.w3.org/2000/svg"; + const INK = "#1A1320", YEL = "#FFCA54", BLUE = "#6C8EF5", LIL = "#B69CFF", MINT = "#7FD8AE", SKY = "#9AD8FF", SOFT = "#F1ECF9", MUTE = "#7A6A88"; + const SANS = '"Space Grotesk", system-ui, sans-serif', MONO = '"JetBrains Mono", ui-monospace, monospace'; + const el = (t, a = {}, p) => { const n = document.createElementNS(NS, t); for (const k in a) n.setAttribute(k, a[k]); if (p) p.appendChild(n); return n; }; + const txt = (p, x, y, s, a = {}) => { const n = el("text", Object.assign({ x, y, "font-family": SANS, "font-size": 24, "font-weight": 600, fill: INK }, a), p); n.textContent = s; return n; }; + const cl = (v, a = 0, b = 1) => Math.max(a, Math.min(b, v)); + const seg = (t, a, b) => cl((t - a) / (b - a)); + const oc = (x) => 1 - Math.pow(1 - x, 3); + const ob = (x) => { const c = 1.70158; return 1 + (c + 1) * Math.pow(x - 1, 3) + c * Math.pow(x - 1, 2); }; + const io = (x) => (x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2); + const tf = (n, x, y, s = 1, r = 0) => n.setAttribute("transform", `translate(${x} ${y}) rotate(${r}) scale(${s})`); + const button = (g, label, fn) => { + g.setAttribute("role", "button"); g.setAttribute("tabindex", "0"); g.setAttribute("aria-label", label); g.classList.add("mg-hit"); + g.addEventListener("click", fn); + g.addEventListener("keydown", (e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); fn(); } }); + }; + + const CAP = "#6B5878"; + const name = (p, x, y, s, a = {}) => txt(p, x, y, s, Object.assign({ "font-family": MONO, "font-weight": 700 }, a)); + const fit = (n, w) => { const L = n.getComputedTextLength(); if (L > w) n.setAttribute("font-size", parseFloat(n.getAttribute("font-size")) * w / L); }; + const pill = (p, x, y, s, fill, fs = 18, h = 40) => { + const g = el("g", {}, p); + const r = el("rect", { x, y, height: h, rx: h / 2, fill, stroke: INK, "stroke-width": 2.5 }, g); + const t = name(g, x + 16, y + h / 2 + fs * 0.36, s, { "font-size": fs }); + const w = t.getComputedTextLength() + 32; r.setAttribute("width", w); + return { g, w }; + }; + const lines = (p, cx, y, s, fs, w, gap) => { const ws = s.split(" "), y0 = ws.length > 1 ? y - gap / 2 : y; ws.forEach((wd, i) => fit(name(p, cx, y0 + i * gap, wd, { "text-anchor": "middle", "font-size": fs }), w)); }; + let uid = 0; + + /* ---- small icons, each drawn around 0,0 in about 64 by 56 ---- */ + const ART = { + laptop(g) { + el("rect", { x: -24, y: -24, width: 48, height: 34, rx: 4, fill: SKY, stroke: INK, "stroke-width": 3 }, g); + el("path", { d: "M-32 12 H32 L27 21 H-27 Z", fill: "#fff", stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, g); + }, + desks(g) { + [[-28, -14], [4, -14], [-28, 14], [4, 14]].forEach(([x, y]) => { + el("rect", { x: x + 7, y: y - 10, width: 10, height: 7, rx: 1.5, fill: "#fff", stroke: INK, "stroke-width": 2 }, g); + el("rect", { x, y: y - 2, width: 24, height: 12, rx: 2.5, fill: YEL, stroke: INK, "stroke-width": 2.5 }, g); + }); + }, + cloud(g) { + el("path", { d: "M-20 18 H22 A14 14 0 0 0 24 -10 A18 18 0 0 0 -10 -14 A13 13 0 0 0 -22 -2 A10 10 0 0 0 -20 18 Z", fill: SKY, stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, g); + }, + terminal(g) { + el("rect", { x: -30, y: -24, width: 60, height: 46, rx: 6, fill: "#fff", stroke: INK, "stroke-width": 3 }, g); + el("path", { d: "M-30 -12 H30", stroke: INK, "stroke-width": 2.5 }, g); + [[-22, MINT], [-14, YEL], [-6, SKY]].forEach(([x, c]) => el("circle", { cx: x, cy: -18, r: 2.6, fill: c, stroke: INK, "stroke-width": 1.5 }, g)); + el("path", { d: "M-20 -2 L-11 5 L-20 12 M-4 13 H12", stroke: INK, "stroke-width": 3, fill: "none", "stroke-linecap": "round", "stroke-linejoin": "round" }, g); + }, + bubble(g) { + el("path", { d: "M-26 -22 H26 Q32 -22 32 -16 V6 Q32 12 26 12 H-4 L-16 24 V12 H-26 Q-32 12 -32 6 V-16 Q-32 -22 -26 -22 Z", fill: LIL, stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, g); + [-12, 0, 12].forEach((x) => el("circle", { cx: x, cy: -5, r: 3.2, fill: INK }, g)); + }, + server(g) { + el("rect", { x: -22, y: -26, width: 44, height: 52, rx: 5, fill: "#fff", stroke: INK, "stroke-width": 3 }, g); + [-9, 8].forEach((y) => el("path", { d: `M-22 ${y} H22`, stroke: INK, "stroke-width": 2.5 }, g)); + [-17, 0, 17].forEach((y) => { el("path", { d: `M-14 ${y} H2`, stroke: INK, "stroke-width": 2.5, "stroke-linecap": "round" }, g); el("circle", { cx: 12, cy: y, r: 3, fill: MINT, stroke: INK, "stroke-width": 1.5 }, g); }); + }, + }; + + const SC = {}; + + /* ---- 1. six cards drop onto a shelf; Claude Cowork stands apart ---- */ + SC.lineup = { + dur: 7, still: 7, + build(svg, api) { + const NAMES = ["Hob", "Munder Difflin", "ChatGPT Work", "Goose", "OpenClaw", "Hermes Agent"]; + const DRAW = [ART.laptop, ART.desks, ART.cloud, ART.terminal, ART.bubble, ART.server]; + const CW = 90, CH = 196, GAP = 7, X0 = 194, SY = 386, TOP = SY - CH; + el("rect", { x: 28, y: SY, width: 128, height: 16, rx: 8, fill: SOFT, stroke: INK, "stroke-width": 3 }, svg); + el("rect", { x: 36, y: TOP, width: 112, height: CH, rx: 14, fill: SOFT, stroke: INK, "stroke-width": 3 }, svg); + lines(svg, 92, TOP + 104, "Claude Cowork", 17, 96, 24); + el("path", { d: `M172 ${TOP - 14} V${SY + 54}`, stroke: INK, "stroke-width": 2, "stroke-dasharray": "2 10", "stroke-linecap": "round" }, svg); + const shelf = el("g", {}, svg); + el("rect", { x: 184, y: TOP - 40, width: 604, height: CH + 116, rx: 20, fill: "#fff", "fill-opacity": 0, class: "mg-ring", stroke: INK, "stroke-width": 2, "stroke-dasharray": "3 7" }, shelf); + [250, 712].forEach((x) => el("path", { d: `M${x} ${SY + 16} V${SY + 58} L${x + 34} ${SY + 16}`, stroke: INK, "stroke-width": 3, fill: "none", "stroke-linejoin": "round", "stroke-linecap": "round" }, shelf)); + const cards = NAMES.map((n, i) => { + const x = X0 + i * (CW + GAP), g = el("g", {}, shelf); + el("rect", { x, y: TOP, width: CW, height: CH, rx: 14, fill: "#fff", stroke: INK, "stroke-width": 3 }, g); + const ic = el("g", {}, g); DRAW[i](ic); + lines(g, x + CW / 2, TOP + 152, n, 16, CW - 12, 22); + return { g, ic, cx: x + CW / 2, d: 0.4 + i * 0.5 }; + }); + el("rect", { x: 182, y: SY, width: 600, height: 16, rx: 8, fill: YEL, stroke: INK, "stroke-width": 3 }, shelf); + button(shelf, "Replay the drop", () => api.seek(0)); + return (t) => { + cards.forEach((c) => { + const p = seg(t, c.d, c.d + 0.45), land = Math.sin(seg(t, c.d + 0.45, c.d + 0.75) * Math.PI); + c.g.setAttribute("opacity", t < c.d ? 0 : 1); + c.g.setAttribute("transform", `translate(0 ${-460 * (1 - p * p) - 12 * land})`); + const k = seg(t, c.d + 0.45, c.d + 0.85); + tf(c.ic, c.cx, TOP + 64, k <= 0 ? 0.001 : ob(k)); + }); + }; + }, + }; + + /* ---- 2. where the work runs: vendor cloud or your hardware ---- */ + SC.where = { + dur: 10, still: 10, + build(svg, api) { + const id = `mgc${++uid}`, TX = 62, TW = 676, SEG = 150; + el("rect", { x: 30, y: 30, width: 740, height: 540, rx: 26, fill: "#fff", stroke: INK, "stroke-width": 3 }, svg); + el("path", { d: "M54 266 H746", stroke: INK, "stroke-width": 2, "stroke-dasharray": "2 10", "stroke-linecap": "round" }, svg); + txt(svg, TX, 82, "Vendor cloud", { "font-size": 24, "font-weight": 700 }); + txt(svg, TX, 318, "Your hardware", { "font-size": 24, "font-weight": 700 }); + const big = el("g", {}, svg); ART.cloud(big); tf(big, 640, 128, 1.9); + const clip = el("clipPath", { id }, el("defs", {}, svg)); + [208, 520].forEach((y) => el("rect", { x: TX, y, width: TW, height: 18, rx: 9 }, clip)); + const bar = (y, col) => { + el("rect", { x: TX, y, width: TW, height: 18, rx: 9, fill: SOFT }, svg); + const g = el("g", { "clip-path": `url(#${id})` }, svg); + const s = el("rect", { y, width: SEG, height: 18, rx: 9, fill: col }, g); + el("rect", { x: TX, y, width: TW, height: 18, rx: 9, fill: "none", stroke: INK, "stroke-width": 2.5 }, svg); + return { g, s }; + }; + const pos = (t) => TX - SEG + (((t * 260) % (TW + SEG)) + TW + SEG) % (TW + SEG); + const cloudBar = bar(208, BLUE), hwBar = bar(520, MINT); + const tags = []; + const slide = (p, x, y, s, fill, d, dy) => { const g = el("g", {}, svg), tg = pill(g, x, y, s, fill); tags.push({ g, d, dy }); return tg.w; }; + const w1 = slide(svg, TX, 116, "Claude Cowork", SKY, 0.4, -36); + slide(svg, TX + w1 + 16, 116, "ChatGPT Work", SKY, 0.65, -36); + const lap = el("g", {}, svg); tf(lap, 142, 444); + el("rect", { x: -86, y: -102, width: 172, height: 134, rx: 18, fill: "#fff", "fill-opacity": 0, class: "mg-ring", stroke: INK, "stroke-width": 2, "stroke-dasharray": "3 7" }, lap); + const lid = el("g", {}, lap); + el("rect", { x: -62, y: -86, width: 124, height: 86, rx: 8, fill: LIL, stroke: INK, "stroke-width": 3 }, lid); + const screen = el("rect", { x: -52, y: -76, width: 104, height: 66, rx: 4, fill: SKY, stroke: INK, "stroke-width": 2 }, lid); + el("path", { d: "M-76 0 H76 L68 16 H-68 Z", fill: "#fff", stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, lap); + const hx = 252, wa = slide(svg, hx, 352, "Hob", YEL, 1.1, 36), wb = slide(svg, hx, 406, "Goose", YEL, 1.6, 36); + const c2 = hx + Math.max(wa, wb) + 16; + slide(svg, c2, 352, "Munder Difflin", YEL, 1.35, 36); slide(svg, c2 + 0, 406, "OpenClaw", YEL, 1.85, 36); + const srv = el("g", {}, svg); ART.server(srv); tf(srv, 652, 372, 1.25); + const hm = el("g", {}, svg); const hw = pill(hm, 0, 0, "Hermes Agent", YEL).w; hm.remove(); + slide(svg, 652 - hw / 2, 420, "Hermes Agent", YEL, 2.2, 36); + const shut = el("g", {}, svg); + el("rect", { x: 82, y: 474, width: 120, height: 30, rx: 15, fill: SOFT, stroke: INK, "stroke-width": 2 }, shut); + txt(shut, 142, 494, "Laptop closed", { "text-anchor": "middle", "font-size": 15, "font-weight": 600, fill: CAP }); + let user = null, at = 0, hold = pos(4.6); + const shutAmt = (t, now) => user == null ? io(seg(t, 4.6, 5.3)) : user ? io(seg(now - at, 0, 0.6)) : 1 - io(seg(now - at, 0, 0.6)); + let last = 0; + button(lap, "Open or close the laptop lid", () => { user = !(last > 0.5); at = api.now(); api.poke(); }); + return (t, now) => { + tags.forEach((g) => { const k = oc(seg(t, g.d, g.d + 0.5)); g.g.setAttribute("opacity", k); g.g.setAttribute("transform", `translate(0 ${g.dy * (1 - k)})`); }); + const k = shutAmt(t, now); last = k; + lid.setAttribute("transform", `scale(1 ${1 - 0.9 * k})`); screen.setAttribute("opacity", k < 0.5 ? 1 : 0); + const clock = user == null ? t : now; + cloudBar.s.setAttribute("x", pos(t)); cloudBar.g.setAttribute("opacity", seg(t, 0.4, 0.8)); + if (k < 0.5) { if (user != null || t < 4.6) hold = pos(clock); } + else if (user == null) hold = pos(4.6); + hwBar.s.setAttribute("x", hold); hwBar.g.setAttribute("opacity", k < 0.5 ? seg(t, 1.1, 1.5) : 0); + const s = seg(k, 0.75, 1); shut.setAttribute("opacity", s); shut.setAttribute("transform", `translate(142 489) scale(${0.6 + 0.4 * ob(s)}) translate(-142 -489)`); + }; + }, + }; + + /* ---- 3. price tags on a rail ---- */ + SC.tags = { + dur: 7, still: 7, + build(svg, api) { + const RY = 176; + el("path", { d: `M28 ${RY} H772`, stroke: INK, "stroke-width": 6, "stroke-linecap": "round" }, svg); + [28, 772].forEach((x) => el("circle", { cx: x, cy: RY, r: 9, fill: "#fff", stroke: INK, "stroke-width": 3 }, svg)); + const shape = (x, y, w, h) => `M${x + 22} ${y} H${x + w - 22} L${x + w} ${y + 22} V${y + h - 14} Q${x + w} ${y + h} ${x + w - 14} ${y + h} H${x + 14} Q${x} ${y + h} ${x} ${y + h - 14} V${y + 22} Z`; + const all = []; + const tag = (x, w, h, fill, label, draw, d, amp) => { + const cx = x + w / 2, y = RY + 44, g = el("g", {}, svg); + el("path", { d: `M${cx} ${RY} V${y + 15}`, stroke: INK, "stroke-width": 2.5, "stroke-linecap": "round" }, g); + el("path", { d: shape(x - 6, y - 6, w + 12, h + 12), fill: "#fff", "fill-opacity": 0, class: "mg-ring", stroke: INK, "stroke-width": 2, "stroke-dasharray": "3 7" }, g); + el("path", { d: shape(x, y, w, h), fill, stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, g); + el("circle", { cx, cy: y + 22, r: 7, fill: "#fff", stroke: INK, "stroke-width": 2.5 }, g); + draw(g, cx, y); + const o = { g, cx, d, amp, tap: -99 }; + button(g, label, () => { o.tap = api.now(); api.poke(); }); + all.push(o); + }; + const BIG = 136, SM = 76; + [["Claude Pro", LIL], ["ChatGPT Plus", SKY]].forEach(([n, c], i) => tag(34 + i * (BIG + 14), BIG, 230, c, `${n}, $20 a month`, (g, cx, y) => { + lines(g, cx, y + 92, n, 22, BIG - 16, 28); + el("path", { d: `M${cx - 48} ${y + 140} H${cx + 48}`, stroke: INK, "stroke-width": 2, "stroke-dasharray": "2 8", "stroke-linecap": "round" }, g); + fit(name(g, cx, y + 184, "$20 a month", { "text-anchor": "middle", "font-size": 17 }), BIG - 16); + }, 0.15, 12)); + const FREE = ["Hob", "Munder Difflin", "Goose", "OpenClaw", "Hermes Agent"], FX = 346; + FREE.forEach((n, i) => tag(FX + i * (SM + 7), SM, 160, YEL, `${n}, Free`, (g, cx, y) => { + lines(g, cx, y + 66, n, 14, SM - 10, 19); + name(g, cx, y + 132, "Free", { "text-anchor": "middle", "font-size": 22 }); + }, 1.2 + i * 0.35, 40)); + const lab = el("g", {}, svg), LX = FX + (5 * SM + 28) / 2; + const lr = el("rect", { y: 418, height: 42, rx: 21, fill: MINT, stroke: INK, "stroke-width": 2.5 }, lab); + const lt = txt(lab, LX, 446, "Bring a model", { "text-anchor": "middle", "font-size": 20, "font-weight": 700 }); + const lw = lt.getComputedTextLength() + 40; lr.setAttribute("x", LX - lw / 2); lr.setAttribute("width", lw); + return (t, now) => { + all.forEach((o) => { + const s = t - o.d, u = now - o.tap; + let a = s < 0 ? o.amp : o.amp * Math.exp(-3.2 * s) * Math.cos(7 * s); + if (u >= 0 && u < 4) a += 20 * Math.exp(-2.4 * u) * Math.sin(7.5 * u); + o.g.setAttribute("opacity", o.amp > 20 ? seg(t, o.d - 0.05, o.d + 0.12) : 1); + o.g.setAttribute("transform", `rotate(${a} ${o.cx} ${RY})`); + }); + const k = seg(t, 3.4, 3.8); + lab.setAttribute("opacity", k > 0 ? 1 : 0); + lab.setAttribute("transform", `translate(${LX} 439) scale(${k <= 0 ? 0.001 : ob(k)}) translate(${-LX} -439)`); + }; + }, + }; + + /* ---- title card, 16 by 9 ---- */ + SC.hero = { + w: 960, h: 540, dur: 1, still: 0, + build(svg) { + const pr = el("rect", { x: 64, y: 78, height: 42, rx: 21, fill: SOFT, stroke: INK, "stroke-width": 2.5 }, svg); + const pt = txt(svg, 86, 106, "Comparisons", { "font-size": 20, "font-weight": 700 }); + pr.setAttribute("width", pt.getComputedTextLength() + 44); + txt(svg, 62, 212, "Claude Cowork", { "font-size": 62, "font-weight": 700 }); + txt(svg, 62, 292, "alternatives", { "font-size": 62, "font-weight": 700 }); + el("path", { d: "M66 316 H430", stroke: YEL, "stroke-width": 14, "stroke-linecap": "round" }, svg); + txt(svg, 64, 378, "Six agents for office work", { "font-size": 28, "font-weight": 500, fill: MUTE }); + txt(svg, 64, 446, "Checked 27 Oct 2026", { "font-size": 20, "font-weight": 600, fill: CAP }); + const CX = 562, CY = 258; + el("rect", { x: CX, y: CY - 52, width: 100, height: 100, rx: 14, fill: "#fff", stroke: INK, "stroke-width": 3 }, svg); + lines(svg, CX + 50, CY + 6, "Claude Cowork", 18, 86, 26); + el("path", { d: `M${CX + 110} ${CY} H${CX + 136} M${CX + 126} ${CY - 10} L${CX + 138} ${CY} L${CX + 126} ${CY + 10}`, stroke: INK, "stroke-width": 3.5, fill: "none", "stroke-linecap": "round", "stroke-linejoin": "round" }, svg); + const PX = 828, PY = 408, fills = [YEL, LIL, "#fff", "#fff", "#fff", "#fff"]; + fills.forEach((f, i) => { + const a = -30 + i * 12, g = el("g", { transform: `rotate(${a} ${PX} ${PY})` }, svg); + el("rect", { x: PX - 26, y: PY - 187, width: 52, height: 74, rx: 9, fill: f, stroke: INK, "stroke-width": 3 }, g); + }); + return () => {}; + }, + }; + + /* ---- player ---- */ + const q = new URLSearchParams(location.search), frozen = q.has("mgstill"), fixed = parseFloat(q.get("mgstill")); + const calm = matchMedia("(prefers-reduced-motion: reduce)").matches; + const mount = (fig) => { + const sc = SC[fig.dataset.scene], img = fig.querySelector("img"); if (!sc || !img) return; + const W = sc.w || 800, H = sc.h || 600; + const svg = el("svg", { viewBox: `0 0 ${W} ${H}`, class: "mg-svg", role: "group", "aria-label": img.alt || "" }); + svg.style.aspectRatio = `${W} / ${H}`; + el("rect", { width: W, height: H, fill: "#fff" }, svg); + img.replaceWith(svg); + let off = 0, raf = 0, seen = false, held = calm; + const base = performance.now(), clock = () => (performance.now() - base) / 1000; + let draw = () => {}; + const frame = () => { const now = clock(); draw(held ? sc.still : (((now + off) % sc.dur) + sc.dur) % sc.dur, now); }; + const tick = () => { cancelAnimationFrame(raf); frame(); if (seen && !held) raf = requestAnimationFrame(tick); }; + const api = { now: clock, seek: (s) => { off = s - clock(); held = false; tick(); }, poke: () => { held = false; tick(); } }; + draw = sc.build(svg, api); + if (frozen) { draw(isNaN(fixed) ? sc.still : fixed, 0); return; } + new IntersectionObserver(([e]) => { + seen = e.isIntersecting; + if (seen) { tick(); if (!fig.dataset.sent && window.posthog) { fig.dataset.sent = 1; window.posthog.capture("blog_scene_view", { slug: location.pathname.split("/").filter(Boolean).pop(), scene: fig.dataset.scene }); } } + else cancelAnimationFrame(raf); + }, { threshold: 0.25 }).observe(fig); + svg.addEventListener("click", () => { if (!fig.dataset.hit && window.posthog) { fig.dataset.hit = 1; window.posthog.capture("blog_scene_interact", { slug: location.pathname.split("/").filter(Boolean).pop(), scene: fig.dataset.scene }); } }); + frame(); + }; + const go = () => document.querySelectorAll("figure.mg[data-scene]").forEach(mount); + const fonts = document.fonts && document.fonts.load ? Promise.all([document.fonts.load('700 32px "Space Grotesk"'), document.fonts.load('500 20px "Space Grotesk"'), document.fonts.load('700 20px "JetBrains Mono"')]).catch(() => {}) : Promise.resolve(); + const start = () => fonts.then(go, go); + if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", start); else start(); +})(); diff --git a/blog/src/assets/media/claude-cowork-alternatives/tags.png b/blog/src/assets/media/claude-cowork-alternatives/tags.png new file mode 100644 index 0000000000..f3e54d5326 Binary files /dev/null and b/blog/src/assets/media/claude-cowork-alternatives/tags.png differ diff --git a/blog/src/assets/media/claude-cowork-alternatives/where.png b/blog/src/assets/media/claude-cowork-alternatives/where.png new file mode 100644 index 0000000000..c16d98de71 Binary files /dev/null and b/blog/src/assets/media/claude-cowork-alternatives/where.png differ diff --git a/blog/src/posts/agent-tools-today-2026-10-27.md b/blog/src/posts/agent-tools-today-2026-10-27.md new file mode 100644 index 0000000000..f89d6219c7 --- /dev/null +++ b/blog/src/posts/agent-tools-today-2026-10-27.md @@ -0,0 +1,57 @@ +--- +title: "Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1" +seoTitle: "Agent Tools Today (27 Oct 2026): Launches, Skills, MCP Servers" +description: "The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source." +date: 2026-10-27 +category: news +categoryLabel: News +type: Non-technical +series: agent-tools-today +primaryKeyword: "agent tools today 27 oct 2026" +secondaryKeywords: ["gpt-6.1 terra", "hob local ai app", "anthropic s-1", "tstack skills", "claude code 2.1.311", "paperpilot mcp"] +tags: ["Daily Brief", "Claude Code", "MCP", "Open Source"] +--- + +Agent tools today, 27 Oct 2026, in one line: OpenAI released GPT-6.1 Terra, the open source app Hob pitched itself as an on device alternative to Claude Cowork, and the Hacker News thread on Anthropic's Form S-1 passed 1,500 points. This edition covers 26 to 27 Oct. Every number was checked on 27 Oct. The last edition is [26 Oct](/blog/agent-tools-today-2026-10-26/). + +[Munder Difflin](https://harnessmd.com/download) is free and open source: a desktop app that runs a team of AI agents for all kinds of knowledge work, coding included, on your own computer. It is not ranked in the lists below. + +
Animation. On a white background, a laptop labelled Your computer holds a small chip labelled Open weight model. A folder labelled Files slides into the laptop and a sheet labelled Chart comes out the other side. A cloud labelled Online stays at the top with a dotted line to the laptop, and a switch labelled Web search flips off, so the dotted line fades.
How Hob describes its design: the model runs on your computer, and web search is the part that goes online, per its Show HN post of 26 Oct 2026.
+ +## Top 3 launches + +1. **GPT-6.1 Terra.** OpenAI's new fast, efficient model for visual reasoning, computer use and writing, released 26 Oct. Its API price is $1 per million input tokens and $5 per million output tokens on OpenAI's model page, read 27 Oct, with a 1,050,000 token context window. In ChatGPT it is in Work and Codex on Plus, Pro, Business, Enterprise and Edu plans. More than 530 points on Hacker News on 27 Oct. [Source](https://developers.openai.com/api/docs/models/gpt-6.1-terra) +2. **Hob.** A free, MIT licensed desktop app for Mac, Windows and Linux that, its author says, works on your files the way the Claude and ChatGPT apps do, except the model runs on your own computer. It picks an open weight model for your hardware (Gemma 4 or gpt-oss), runs Python in a sandbox, searches the web and takes MCP connectors. v0.2.0 and v0.2.1 shipped on 26 Oct, and the Show HN post had more than 120 points on 27 Oct. Our [Claude Cowork alternatives](/blog/claude-cowork-alternatives/) page compares it. [Source](https://github.com/FrigadeHQ/hob) +3. **PaperPilot.** A PDF and document toolkit written in Rust that runs as an MCP server, a CLI, a browser tool, a desktop app and a local REST API. The MCP server lets Codex, Claude Code, Kimi Code, Pi, Claude Desktop or Cursor merge, split, OCR and compress PDFs. Its Hacker News post had 230 points on 27 Oct, and the repo more than 590 stars on 27 Oct; GitHub detects no standard licence. [Source](https://github.com/KrushnaVardhanReddy/PaperPilot) + +## Top 3 skills, MCP servers and plugins + +1. **tstack.** The agent skills Theo of t3.gg uses every day, for Claude Code and Codex. `council` gets review from three models from different providers and loops until they agree; `full-send` takes a change all the way to a merged pull request; `babysit-pr` watches a pull request through CI and review bots. It needs an authenticated GitHub CLI. Created 24 Oct, MIT, more than 1,600 stars on 27 Oct. See our [Claude Code skills guide](/blog/claude-code-skills/). [Source](https://github.com/t3dotgg/tstack) +2. **Digital Human Koubo.** An agent skill for Claude Code, Codex and OpenClaw that turns one photo and one sentence into a talking head video: script, lip synced presenter, captions and packaging. It generates the clips through Renoise MCP and edits with Remotion. Created 26 Oct, MIT, more than 780 stars on 27 Oct. [Source](https://github.com/andyhuo520/digital-human-koubo) +3. **huashu-motion.** A skill that has your agent make a product launch film: it reads your product, offers three directions, writes a score and opens an editor where you click on a frame to change only that part. Installs with `npx skills add alchaincyf/huashu-motion`. Created 18 Oct, MIT, more than 1,700 stars on 27 Oct. [Source](https://github.com/alchaincyf/huashu-motion) + +## Top 3 moves from multi agent tools + +1. **Claude Code v2.1.311.** Published late on 26 Oct UTC. Standard context sessions no longer stop with "Usage credits required for 1M context" when a request runs over 200K tokens; Claude Code now compacts the conversation and continues. Subagents can use MCP tools from servers that finish connecting after they start, and a subagent's worktree is no longer removed while a background subagent it started is still working in it. [Source](https://github.com/anthropics/claude-code/releases/tag/v2.1.311) +2. **GitHub Copilot CLI v1.0.104.** Published 27 Oct. Interactive and SDK Autopilot sessions keep waiting for attached background tasks instead of stopping at a timeout, and Assisted Permissions no longer need experimental mode. [Source](https://github.com/github/copilot-cli/releases/tag/v1.0.104) +3. **Cline v4.1.26.** Published 26 Oct. Cloud tasks get a Local or Cloud toggle in API Configuration with their own model choice, and starting a cloud sandbox shows a progress card for the repo, branch and steps. With no model chosen, the Cline provider uses Claude Sonnet 5.5 again. See [Cline alternatives](/blog/cline-alternatives/). [Source](https://github.com/cline/cline/releases/tag/v4.1.26) + +## Top 3 rising repos + +1. **SkillSpector.** NVIDIA's security scanner for agent skills: it checks a skill for vulnerabilities and malicious patterns before you install it. Its README, read 27 Oct 2026, says that in a research subset of 31,132 skills, 26.1% contained vulnerabilities and 5.2% showed likely malicious intent. On GitHub trending on 27 Oct, Apache 2.0, v2.13.1 on 23 Oct. [Source](https://github.com/NVIDIA/SkillSpector) +2. **Cindy.** An open source agent client that runs on your machine with your real files and logged in apps, using Claude Code and Codex as its first harnesses; models and harnesses can switch mid task. On GitHub trending on 27 Oct, Apache 2.0, v0.1.115 on 23 Oct. [Source](https://github.com/makecindy/cindy) +3. **Nietzschian Debugger.** "The anti-AI": you paste a bug and it does not fix it, it asks questions that challenge your assumptions until you find the cause yourself. More than 130 points on Hacker News on 27 Oct, MIT. [Source](https://github.com/DilawarShafiq/nietzschian-debugger) + +New repos can gain stars quickly for reasons other than use, so treat these as names to watch, not recommendations. + +## Top 3 things people are arguing about + +1. **What Anthropic's S-1 means.** SEC EDGAR lists a Form S-1, the general form for registering securities, filed by Anthropic, PBC on 26 Oct 2026. The Hacker News thread had more than 1,500 points and 1,400 comments on 27 Oct. [Source](https://www.sec.gov/Archives/edgar/data/2130357/000162828026067168/anthropicpbc-sx1.htm) +2. **Can a hosted model leak another customer's prompt?** Cloudflare says that between 27 Aug and 9 Sep, 155 responses from its GLM 5.3 Workers AI model contained data from other customers' requests, all to prompts longer than 681,280 tokens. The cause was a KV cache pool smaller than the context window plus a bug in the open source SGLang engine; Cloudflare found no evidence of deliberate exploitation. More than 90 points on Hacker News on 27 Oct. [Source](https://blog.cloudflare.com/kv-cache-exposure-remediation/) +3. **Do local models make the desktop agent free?** Hob's Show HN thread, with more than 30 comments, is mostly praise and feature requests, with some doubt that open weight models on your own hardware can do real file work. Its author says the only parts that go online are web search, which can be turned off, and the MCP connectors you add. Its docs add that it also goes online to download models and, with web access on, to install Python packages. [Source](https://news.ycombinator.com/item?id=50246238) + +## How this list is built + +For this edition, covering 26 to 27 Oct, we read the GitHub releases of 17 tracked tools, vendor docs and changelogs, GitHub trending, and the Hacker News front page. We did not read X or Reddit for it. A name only makes a list with a link that was opened and a signal that can be shown: points, stars or a dated release. Repos are checked against the GitHub API before they appear. New here? Start with the [install guide](/blog/how-to-install-and-use-munder-difflin/). + + diff --git a/blog/src/posts/claude-cowork-alternatives.md b/blog/src/posts/claude-cowork-alternatives.md new file mode 100644 index 0000000000..49eda4a9a9 --- /dev/null +++ b/blog/src/posts/claude-cowork-alternatives.md @@ -0,0 +1,92 @@ +--- +title: "Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included" +seoTitle: "6 Claude Cowork Alternatives, Free and Open Source Included (Oct 2026)" +description: "Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026." +date: 2026-10-27 +category: comparisons +categoryLabel: Comparisons +type: Non-technical +primaryKeyword: "claude cowork alternatives" +secondaryKeywords: ["claude cowork alternative", "free claude cowork alternative", "open source claude cowork alternative", "claude cowork alternative local", "apps like claude cowork", "hob vs claude cowork"] +tags: ["Comparisons", "AI Agents", "Open Source", "Local-First"] +faq: + - q: "Is there a free alternative to Claude Cowork?" + a: "Yes. Hob, Munder Difflin, Goose, OpenClaw and Hermes Agent are free and open source. Hob runs open weight models on your own computer, so it needs no subscription at all; the others use a model you bring: a subscription you already pay for, an API key or a local model. Claude Cowork itself is on paid Claude plans only, from Pro at $20 a month billed monthly (27 Oct 2026)." + - q: "Is there a Claude Cowork alternative that runs locally?" + a: "Hob is the most local: its Show HN post says the model runs on your own computer and the only parts that go online are web search, which you can turn off, and MCP connectors you add. Its docs add that it also goes online to download models and, with web access on, to install Python packages. Goose, Munder Difflin and OpenClaw also run on your computer and can work with local models." + - q: "What is the closest alternative to Claude Cowork from another big vendor?" + a: "ChatGPT Work. OpenAI's docs describe it as a way to delegate real work to ChatGPT: it uses your files, plugins and approved tools, and creates finished files you review. It is on ChatGPT Plus, Pro, Business and Enterprise, with Plus at $20 a month (27 Oct 2026)." + - q: "Which Claude Cowork alternative gives me a team of agents?" + a: "Munder Difflin. It runs a team of AI agents for all kinds of knowledge work, coding included: research, writing, analysis, ops and code, each agent with its own role, with schedules and Slack. Cowork can split one task across Claude sub-agents, all on Claude models." +--- + +The best Claude Cowork alternatives are Hob if you want a free app with the model on your own computer, [Munder Difflin](https://harnessmd.com/download) if you want a team of agents, and ChatGPT Work if you want a big vendor's cloud. Goose, OpenClaw and Hermes Agent round out the list. + +[Munder Difflin](https://harnessmd.com/download) is free and open source: a desktop app that runs a team of AI agents for all kinds of knowledge work, coding included, on your own computer. New to Cowork? Start with [What is Claude Cowork?](/blog/what-is-claude-cowork/). Every fact below comes from pages opened on 27 Oct 2026. + +## Why look for a Claude Cowork alternative? + +Cowork is good at office work: you describe an outcome and Claude hands back finished documents, organized files or research. Three things send people looking elsewhere. From Anthropic's [help page](https://support.claude.com/en/articles/13345190-get-started-with-claude-cowork) and [pricing page](https://claude.com/pricing), read 27 Oct 2026: + +- **It needs a paid plan.** "Cowork is available to paid Claude plans (Pro, Max, Team, Enterprise) only." Pro is $20 a month billed monthly, or $17 a month billed annually. +- **The work runs in Anthropic's cloud.** "Claude's work runs on Anthropic's servers, in an isolated environment, and your sessions and files are saved to your Claude account." Local files and your browser need the Claude Desktop app open and connected. +- **It is one Claude.** The pricing page says "Claude Cowork is now just Claude": chat and Cowork are becoming one experience, rolling out to Pro and Max first. Claude can split a task across sub-agents, all on Claude models. + +## What are the best Claude Cowork alternatives? + +Six agents that take a task and hand back finished work, five of them free and open source. + +1. **[Hob](https://github.com/FrigadeHQ/hob).** A free, MIT licensed desktop app for Mac, Windows and Linux. Its README calls it "A free, open-source alternative to Claude and ChatGPT". Its Show HN post says it picks an open weight model that fits your computer (Gemma 4 or gpt-oss today), reads and changes files in a folder, runs Python in a sandbox, looks at images, searches the web and takes MCP connectors. v0.2.1 shipped on 26 Oct, and its Show HN post had more than 120 points on 27 Oct. +2. **[Munder Difflin](https://harnessmd.com/download).** A team of AI agents on your own computer, each with a role, for research, writing, email, analysis, ops and code. Agents run on engines such as Claude Code, Codex and Gemini CLI, take MCP servers, skills and plugins, and connect through Slack and webhooks. Work can run on schedules. The Cloud Office, coming soon, keeps agents working with your computer off. +3. **[ChatGPT Work](https://learn.chatgpt.com/docs/get-started-with-work).** OpenAI's answer to Cowork: "ChatGPT Work is a way to delegate real work to ChatGPT." It uses your files, plugins and approved tools to create finished files you review, and in the desktop app it can also use local files, apps and the browser. +4. **[Goose](https://github.com/aaif-goose/goose).** "a general-purpose AI agent that runs on your machine," with a desktop app for macOS, Linux and Windows, a CLI and an API. Its README names research, writing, automation and data analysis, not just code. Apache 2.0, part of the Agentic AI Foundation at the Linux Foundation, v1.56.0 on 23 Oct. +5. **[OpenClaw](https://github.com/openclaw/openclaw).** An open source assistant that runs on your own computer and answers in the chat apps you already use: Discord, iMessage, Slack, Teams, Telegram, WhatsApp and 20 or more others. MIT, v2026.10.7 on 24 Oct. Its README says it has "no paid tier, hosted service, or token". +6. **[Hermes Agent](https://github.com/NousResearch/hermes-agent).** Nous Research's agent that writes skills from experience and keeps memory across sessions. It can live on a small server and take work from Telegram, Discord, Slack, WhatsApp or Signal, with a built in scheduler. MIT, v0.22.5 on 23 Oct. + +
Animation. On a white background, six cards drop onto a shelf in order: Hob, Munder Difflin, ChatGPT Work, Goose, OpenClaw and Hermes Agent. A card labelled Claude Cowork sits apart on the left. Each of the six cards shows a small icon as it lands: a laptop, a group of desks, a cloud, a terminal, a chat bubble and a server.
Six Claude Cowork alternatives, each from its own README or docs, read 27 Oct 2026.
+ +## Where does the work run? + +This is the biggest split. Cowork runs tasks in Anthropic's cloud; ChatGPT Work can run them in OpenAI's cloud or locally through its desktop app. The open source picks run on hardware you control. + +- **On your computer, model included:** Hob. Its author says the only parts that go online are web search, which can be turned off in settings, and the MCP connectors you add. Its docs add that it also goes online to download models and, with web access on, to install Python packages. +- **On your computer, with a model you choose:** Goose, Munder Difflin and OpenClaw. Goose's README lists 15 or more providers, Ollama for local models among them, and says it can use an existing Claude, ChatGPT or Gemini subscription. +- **On a server you rent:** Hermes Agent's README, read 27 Oct 2026, says it runs "on a $5 VPS, a GPU cluster, or serverless infrastructure". +- **In the vendor's cloud:** Claude Cowork, and ChatGPT Work when you choose cloud Work; both reach your computer through their desktop apps. + +The trade is plain. Cloud tasks keep going when your laptop closes. Local tasks keep your files on hardware you control, though a hosted model still sees what you send it, and they stop when that machine does. + +
Animation. A white card is split into two lanes, Vendor cloud on top and Your hardware below. Name tags slide into place: Claude Cowork and ChatGPT Work go up to the cloud lane; Hob, Munder Difflin, Goose and OpenClaw drop into the hardware lane beside a laptop; Hermes Agent lands beside a small server box. A laptop lid closes and only the cloud lane keeps a moving progress bar.
Where each alternative runs its work, per each project's README or vendor docs, read 27 Oct 2026. ChatGPT Work also offers local Work in its desktop app.
+ +## What do Claude Cowork alternatives cost? + +Prices as listed on 27 Oct 2026: + +| Tool | Price | What you also need | +| --- | --- | --- | +| Claude Cowork | Claude Pro, $20 a month (or $17 a month billed annually) | Nothing else. | +| Hob | Free, MIT | A computer that can run an open weight model | +| Munder Difflin | Free and open source | An engine and a model you already use. | +| ChatGPT Work | ChatGPT Plus, $20 a month; Pro from $100 a month | Nothing else | +| Goose | Free, Apache 2.0 | A model provider or local model | +| OpenClaw | Free, MIT | A model provider or local model | +| Hermes Agent | Free, MIT | A model provider, and a server if you want it always on | + +ChatGPT Work prices come from OpenAI's [pricing page](https://learn.chatgpt.com/docs/pricing), which says Work and Codex share usage and lists Work on Plus, Pro, Business and Enterprise. + +
Animation. Two price tags hang on a white rail: Claude Pro 20 dollars a month and ChatGPT Plus 20 dollars a month. Five smaller tags swing in beside them, each reading Free: Hob, Munder Difflin, Goose, OpenClaw and Hermes Agent. A small mint label pops up under the free tags reading Bring a model.
Paid plans against free and open source picks, prices from Anthropic's and OpenAI's pricing pages on 27 Oct 2026.
+ +## Which Claude Cowork alternative should you pick? + +Start from what you want to hand off: + +- **One task at a time, no subscription, files on your machine:** Hob. +- **A team of agents for research, writing, ops and code, on your own computer:** Munder Difflin. See the [install guide](/blog/how-to-install-and-use-munder-difflin/). +- **Cowork's experience on OpenAI's models:** ChatGPT Work. +- **One open agent that works with any provider:** Goose. +- **An assistant you message from your chat apps:** OpenClaw. More picks in [OpenClaw alternatives](/blog/openclaw-alternatives/). +- **An agent that learns and lives on a server:** Hermes Agent. More picks in [Hermes Agent alternatives](/blog/hermes-agent-alternatives/). + +Still choosing between Anthropic's own tools? [Claude Cowork vs Claude Code](/blog/claude-cowork-vs-claude-code/) compares them. + + diff --git a/blog/src/posts/claude-cowork-vs-claude-code.md b/blog/src/posts/claude-cowork-vs-claude-code.md index 45f6c8437c..88e31f5df2 100644 --- a/blog/src/posts/claude-cowork-vs-claude-code.md +++ b/blog/src/posts/claude-cowork-vs-claude-code.md @@ -88,7 +88,7 @@ The Claude Code rows come from its [permissions page](https://code.claude.com/do Yes, and on one subscription. Pro lists Claude Code on the pricing page and Cowork on the help page, so you do not pay twice. Our view: plenty of people should use both, one for the spec and the spreadsheet, the other for the code. -If your work is code and you want more than one agent on it, that is a third kind of tool. [Munder Difflin](https://harnessmd.com/download) is free and open source: a desktop app that runs a team of coding agents such as Claude Code, Codex and Gemini CLI on your own computer. It does not run Cowork. Start with [how to install and use Munder Difflin](/blog/how-to-install-and-use-munder-difflin/). +If you want more than one agent on the work, that is a third kind of tool. [Munder Difflin](https://harnessmd.com/download) is free and open source: a desktop app that runs a team of AI agents for all kinds of knowledge work, coding included, on your own computer. It does not run Cowork. Start with [how to install and use Munder Difflin](/blog/how-to-install-and-use-munder-difflin/), or see [Claude Cowork alternatives](/blog/claude-cowork-alternatives/). ## Claude Cowork vs OpenClaw: how do they differ? diff --git a/blog/src/posts/what-is-claude-cowork.md b/blog/src/posts/what-is-claude-cowork.md index efe17c3860..990a38812e 100644 --- a/blog/src/posts/what-is-claude-cowork.md +++ b/blog/src/posts/what-is-claude-cowork.md @@ -24,7 +24,7 @@ faq: Claude Cowork is Anthropic's agent for office work: you describe an outcome, Claude plans it, runs the steps in the background and hands back finished files. It comes with every paid Claude plan, from $20 a month (checked 3 Oct 2026), and not with the free one. Since 16 Sep 2026 it is being merged into normal Claude chat. -Cowork is built for documents, spreadsheets and research. If your work is a codebase and you want several coding agents at once, that is a different tool: [Munder Difflin](https://harnessmd.com/download), free and open source, is a desktop app that runs a team of coding agents such as Claude Code, Codex and Gemini CLI on your own computer. The [install guide](/blog/how-to-install-and-use-munder-difflin/) covers setup, and the [concepts hub](/blog/topics/concepts/) has more. +Cowork is built for documents, spreadsheets and research. [Munder Difflin](https://harnessmd.com/download) is free and open source: a desktop app that runs a team of AI agents for all kinds of knowledge work, coding included, on your own computer. The [install guide](/blog/how-to-install-and-use-munder-difflin/) covers setup, and [Claude Cowork alternatives](/blog/claude-cowork-alternatives/) compares Munder Difflin with five other options. ## What is Claude Cowork? diff --git a/docs/blog/agent-tools-today-2026-10-03/index.html b/docs/blog/agent-tools-today-2026-10-03/index.html index b681eaae6c..0f5d51a0b5 100644 --- a/docs/blog/agent-tools-today-2026-10-03/index.html +++ b/docs/blog/agent-tools-today-2026-10-03/index.html @@ -249,50 +249,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-04/index.html b/docs/blog/agent-tools-today-2026-10-04/index.html index b762de707d..c0ff076550 100644 --- a/docs/blog/agent-tools-today-2026-10-04/index.html +++ b/docs/blog/agent-tools-today-2026-10-04/index.html @@ -248,50 +248,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-05/index.html b/docs/blog/agent-tools-today-2026-10-05/index.html index 169736d437..2f93982d48 100644 --- a/docs/blog/agent-tools-today-2026-10-05/index.html +++ b/docs/blog/agent-tools-today-2026-10-05/index.html @@ -246,50 +246,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-06/index.html b/docs/blog/agent-tools-today-2026-10-06/index.html index d26b5a44d0..6d8ac95649 100644 --- a/docs/blog/agent-tools-today-2026-10-06/index.html +++ b/docs/blog/agent-tools-today-2026-10-06/index.html @@ -247,50 +247,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-07/index.html b/docs/blog/agent-tools-today-2026-10-07/index.html index c29d053af7..6dc20e1104 100644 --- a/docs/blog/agent-tools-today-2026-10-07/index.html +++ b/docs/blog/agent-tools-today-2026-10-07/index.html @@ -247,50 +247,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-08/index.html b/docs/blog/agent-tools-today-2026-10-08/index.html index 347a4a6ba5..a070bcf120 100644 --- a/docs/blog/agent-tools-today-2026-10-08/index.html +++ b/docs/blog/agent-tools-today-2026-10-08/index.html @@ -246,50 +246,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-09/index.html b/docs/blog/agent-tools-today-2026-10-09/index.html index fedb7651b3..ab25e41c5a 100644 --- a/docs/blog/agent-tools-today-2026-10-09/index.html +++ b/docs/blog/agent-tools-today-2026-10-09/index.html @@ -247,50 +247,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-10/index.html b/docs/blog/agent-tools-today-2026-10-10/index.html index a5c4c53ea7..a0b69c2a82 100644 --- a/docs/blog/agent-tools-today-2026-10-10/index.html +++ b/docs/blog/agent-tools-today-2026-10-10/index.html @@ -247,50 +247,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-11/index.html b/docs/blog/agent-tools-today-2026-10-11/index.html index 1e7c3b9321..01156f2a1d 100644 --- a/docs/blog/agent-tools-today-2026-10-11/index.html +++ b/docs/blog/agent-tools-today-2026-10-11/index.html @@ -245,50 +245,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-12/index.html b/docs/blog/agent-tools-today-2026-10-12/index.html index 633da03a18..7b849d7662 100644 --- a/docs/blog/agent-tools-today-2026-10-12/index.html +++ b/docs/blog/agent-tools-today-2026-10-12/index.html @@ -243,50 +243,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-13/index.html b/docs/blog/agent-tools-today-2026-10-13/index.html index 619a76d622..273730f6ce 100644 --- a/docs/blog/agent-tools-today-2026-10-13/index.html +++ b/docs/blog/agent-tools-today-2026-10-13/index.html @@ -243,50 +243,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-15/index.html b/docs/blog/agent-tools-today-2026-10-15/index.html index 12fc7c7cb4..f4cdcb0c94 100644 --- a/docs/blog/agent-tools-today-2026-10-15/index.html +++ b/docs/blog/agent-tools-today-2026-10-15/index.html @@ -242,50 +242,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-16/index.html b/docs/blog/agent-tools-today-2026-10-16/index.html index 88dc97faaa..b144655dde 100644 --- a/docs/blog/agent-tools-today-2026-10-16/index.html +++ b/docs/blog/agent-tools-today-2026-10-16/index.html @@ -241,50 +241,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-17/index.html b/docs/blog/agent-tools-today-2026-10-17/index.html index c581d1b0a2..5d13a1ed18 100644 --- a/docs/blog/agent-tools-today-2026-10-17/index.html +++ b/docs/blog/agent-tools-today-2026-10-17/index.html @@ -240,50 +240,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-18/index.html b/docs/blog/agent-tools-today-2026-10-18/index.html index 6e93748107..48805810d4 100644 --- a/docs/blog/agent-tools-today-2026-10-18/index.html +++ b/docs/blog/agent-tools-today-2026-10-18/index.html @@ -240,50 +240,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-19/index.html b/docs/blog/agent-tools-today-2026-10-19/index.html index 263c879411..af2bc21a59 100644 --- a/docs/blog/agent-tools-today-2026-10-19/index.html +++ b/docs/blog/agent-tools-today-2026-10-19/index.html @@ -240,50 +240,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-21/index.html b/docs/blog/agent-tools-today-2026-10-21/index.html index 6d681b9558..fc92976f74 100644 --- a/docs/blog/agent-tools-today-2026-10-21/index.html +++ b/docs/blog/agent-tools-today-2026-10-21/index.html @@ -240,50 +240,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-22/index.html b/docs/blog/agent-tools-today-2026-10-22/index.html index 99e8ecfde5..9ea3aed58a 100644 --- a/docs/blog/agent-tools-today-2026-10-22/index.html +++ b/docs/blog/agent-tools-today-2026-10-22/index.html @@ -240,50 +240,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-23/index.html b/docs/blog/agent-tools-today-2026-10-23/index.html index 756c587b69..f6f1a65de9 100644 --- a/docs/blog/agent-tools-today-2026-10-23/index.html +++ b/docs/blog/agent-tools-today-2026-10-23/index.html @@ -241,50 +241,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Black October: What PHP2Shell Is and How to Patch (Oct 2026)

-

Black October is the scramble around PHP2Shell, two critical PHP flaws fixed on 21 Oct 2026. Who found them, the fixed versions and how to patch.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 22 Oct 2026: Claude API 2026-10-21, LayerFS 1.0, PHP2Shell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 22 Oct 2026, each with its source.

+

Black October: What PHP2Shell Is and How to Patch (Oct 2026)

+

Black October is the scramble around PHP2Shell, two critical PHP flaws fixed on 21 Oct 2026. Who found them, the fixed versions and how to patch.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-26/index.html b/docs/blog/agent-tools-today-2026-10-26/index.html index 9c9050095d..238fe58f28 100644 --- a/docs/blog/agent-tools-today-2026-10-26/index.html +++ b/docs/blog/agent-tools-today-2026-10-26/index.html @@ -241,50 +241,50 @@

How this list is built
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 22 Oct 2026: Claude API 2026-10-21, LayerFS 1.0, PHP2Shell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 22 Oct 2026, each with its source.

+

Black October: What PHP2Shell Is and How to Patch (Oct 2026)

+

Black October is the scramble around PHP2Shell, two critical PHP flaws fixed on 21 Oct 2026. Who found them, the fixed versions and how to patch.

News - Read → + Read →
diff --git a/docs/blog/agent-tools-today-2026-10-27/index.html b/docs/blog/agent-tools-today-2026-10-27/index.html new file mode 100644 index 0000000000..de9e74dacf --- /dev/null +++ b/docs/blog/agent-tools-today-2026-10-27/index.html @@ -0,0 +1,349 @@ + + + + + + + + +Agent Tools Today (27 Oct 2026): Launches, Skills, MCP Servers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

+ +
+ +
Hand drawn sketch: a front page with five numbered lines, a clock, and a yellow character reading it out
+ +
+
+

Agent tools today, 27 Oct 2026, in one line: OpenAI released GPT-6.1 Terra, the open source app Hob pitched itself as an on device alternative to Claude Cowork, and the Hacker News thread on Anthropic’s Form S-1 passed 1,500 points. This edition covers 26 to 27 Oct. Every number was checked on 27 Oct. The last edition is 26 Oct.

+

Munder Difflin is free and open source: a desktop app that runs a team of AI agents for all kinds of knowledge work, coding included, on your own computer. It is not ranked in the lists below.

+
Animation. On a white background, a laptop labelled Your computer holds a small chip labelled Open weight model. A folder labelled Files slides into the laptop and a sheet labelled Chart comes out the other side. A cloud labelled Online stays at the top with a dotted line to the laptop, and a switch labelled Web search flips off, so the dotted line fades.
How Hob describes its design: the model runs on your computer, and web search is the part that goes online, per its Show HN post of 26 Oct 2026.
+

Top 3 launches

+
    +
  1. GPT-6.1 Terra. OpenAI’s new fast, efficient model for visual reasoning, computer use and writing, released 26 Oct. Its API price is $1 per million input tokens and $5 per million output tokens on OpenAI’s model page, read 27 Oct, with a 1,050,000 token context window. In ChatGPT it is in Work and Codex on Plus, Pro, Business, Enterprise and Edu plans. More than 530 points on Hacker News on 27 Oct. Source
  2. +
  3. Hob. A free, MIT licensed desktop app for Mac, Windows and Linux that, its author says, works on your files the way the Claude and ChatGPT apps do, except the model runs on your own computer. It picks an open weight model for your hardware (Gemma 4 or gpt-oss), runs Python in a sandbox, searches the web and takes MCP connectors. v0.2.0 and v0.2.1 shipped on 26 Oct, and the Show HN post had more than 120 points on 27 Oct. Our Claude Cowork alternatives page compares it. Source
  4. +
  5. PaperPilot. A PDF and document toolkit written in Rust that runs as an MCP server, a CLI, a browser tool, a desktop app and a local REST API. The MCP server lets Codex, Claude Code, Kimi Code, Pi, Claude Desktop or Cursor merge, split, OCR and compress PDFs. Its Hacker News post had 230 points on 27 Oct, and the repo more than 590 stars on 27 Oct; GitHub detects no standard licence. Source
  6. +
+

Top 3 skills, MCP servers and plugins

+
    +
  1. tstack. The agent skills Theo of t3.gg uses every day, for Claude Code and Codex. council gets review from three models from different providers and loops until they agree; full-send takes a change all the way to a merged pull request; babysit-pr watches a pull request through CI and review bots. It needs an authenticated GitHub CLI. Created 24 Oct, MIT, more than 1,600 stars on 27 Oct. See our Claude Code skills guide. Source
  2. +
  3. Digital Human Koubo. An agent skill for Claude Code, Codex and OpenClaw that turns one photo and one sentence into a talking head video: script, lip synced presenter, captions and packaging. It generates the clips through Renoise MCP and edits with Remotion. Created 26 Oct, MIT, more than 780 stars on 27 Oct. Source
  4. +
  5. huashu-motion. A skill that has your agent make a product launch film: it reads your product, offers three directions, writes a score and opens an editor where you click on a frame to change only that part. Installs with npx skills add alchaincyf/huashu-motion. Created 18 Oct, MIT, more than 1,700 stars on 27 Oct. Source
  6. +
+

Top 3 moves from multi agent tools

+
    +
  1. Claude Code v2.1.311. Published late on 26 Oct UTC. Standard context sessions no longer stop with “Usage credits required for 1M context” when a request runs over 200K tokens; Claude Code now compacts the conversation and continues. Subagents can use MCP tools from servers that finish connecting after they start, and a subagent’s worktree is no longer removed while a background subagent it started is still working in it. Source
  2. +
  3. GitHub Copilot CLI v1.0.104. Published 27 Oct. Interactive and SDK Autopilot sessions keep waiting for attached background tasks instead of stopping at a timeout, and Assisted Permissions no longer need experimental mode. Source
  4. +
  5. Cline v4.1.26. Published 26 Oct. Cloud tasks get a Local or Cloud toggle in API Configuration with their own model choice, and starting a cloud sandbox shows a progress card for the repo, branch and steps. With no model chosen, the Cline provider uses Claude Sonnet 5.5 again. See Cline alternatives. Source
  6. +
+

Top 3 rising repos

+
    +
  1. SkillSpector. NVIDIA’s security scanner for agent skills: it checks a skill for vulnerabilities and malicious patterns before you install it. Its README, read 27 Oct 2026, says that in a research subset of 31,132 skills, 26.1% contained vulnerabilities and 5.2% showed likely malicious intent. On GitHub trending on 27 Oct, Apache 2.0, v2.13.1 on 23 Oct. Source
  2. +
  3. Cindy. An open source agent client that runs on your machine with your real files and logged in apps, using Claude Code and Codex as its first harnesses; models and harnesses can switch mid task. On GitHub trending on 27 Oct, Apache 2.0, v0.1.115 on 23 Oct. Source
  4. +
  5. Nietzschian Debugger. “The anti-AI”: you paste a bug and it does not fix it, it asks questions that challenge your assumptions until you find the cause yourself. More than 130 points on Hacker News on 27 Oct, MIT. Source
  6. +
+

New repos can gain stars quickly for reasons other than use, so treat these as names to watch, not recommendations.

+

Top 3 things people are arguing about

+
    +
  1. What Anthropic’s S-1 means. SEC EDGAR lists a Form S-1, the general form for registering securities, filed by Anthropic, PBC on 26 Oct 2026. The Hacker News thread had more than 1,500 points and 1,400 comments on 27 Oct. Source
  2. +
  3. Can a hosted model leak another customer’s prompt? Cloudflare says that between 27 Aug and 9 Sep, 155 responses from its GLM 5.3 Workers AI model contained data from other customers’ requests, all to prompts longer than 681,280 tokens. The cause was a KV cache pool smaller than the context window plus a bug in the open source SGLang engine; Cloudflare found no evidence of deliberate exploitation. More than 90 points on Hacker News on 27 Oct. Source
  4. +
  5. Do local models make the desktop agent free? Hob’s Show HN thread, with more than 30 comments, is mostly praise and feature requests, with some doubt that open weight models on your own hardware can do real file work. Its author says the only parts that go online are web search, which can be turned off, and the MCP connectors you add. Its docs add that it also goes online to download models and, with web access on, to install Python packages. Source
  6. +
+

How this list is built

+

For this edition, covering 26 to 27 Oct, we read the GitHub releases of 17 tracked tools, vendor docs and changelogs, GitHub trending, and the Hacker News front page. We did not read X or Reddit for it. A name only makes a list with a link that was opened and a signal that can be shown: points, stars or a dated release. Repos are checked against the GitHub API before they appear. New here? Start with the install guide.

+ + + + + + +
+ + +
+ + + + +
+ + +
+ +
+ + + + + + diff --git a/docs/blog/ai-agent-office-github/index.html b/docs/blog/ai-agent-office-github/index.html index 93dea06d8f..1bbb435a6e 100644 --- a/docs/blog/ai-agent-office-github/index.html +++ b/docs/blog/ai-agent-office-github/index.html @@ -358,50 +358,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + 4 min
-

Claude Duet Alternatives: 4 AI Agents You Can Use Today, No Waitlist

-

Claude Duet is waitlisted and US only. Four proactive agents you can run today, sorted by where they run: a vendor's cloud or hardware you control.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/aider-vs-claude-code/index.html b/docs/blog/aider-vs-claude-code/index.html index a707aa9852..7b5c226140 100644 --- a/docs/blog/aider-vs-claude-code/index.html +++ b/docs/blog/aider-vs-claude-code/index.html @@ -291,50 +291,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/assets/media/agent-tools-today-2026-10-27/motion.css b/docs/blog/assets/media/agent-tools-today-2026-10-27/motion.css new file mode 100644 index 0000000000..8cfca96d6b --- /dev/null +++ b/docs/blog/assets/media/agent-tools-today-2026-10-27/motion.css @@ -0,0 +1,13 @@ +/* Bright coded scene for "Agent tools today, 27 Oct 2026". Pairs with motion.js. */ +.prose figure.mg { margin: 42px 0; } +.prose figure.mg img, .mg .mg-svg { display: block; width: 100%; height: auto; border: 1px solid #1A1320; border-radius: 18px; background: #fff; } +.mg figcaption { font: 500 13px/1.5 "Space Grotesk", system-ui, sans-serif; color: #6B5878; padding-top: 10px; text-align: center; } +.mg .mg-svg { touch-action: manipulation; -webkit-tap-highlight-color: transparent; } +.mg .mg-svg text { -webkit-user-select: none; user-select: none; pointer-events: none; } +.mg .mg-hit { cursor: pointer; outline: none; } +.mg [role="slider"] { cursor: grab; touch-action: none; } +.mg .mg-ring { stroke-opacity: 0; transition: stroke-opacity 0.15s; } +.mg .mg-hit:focus-visible .mg-ring { stroke-opacity: 1; } +.mg [role="slider"]:focus-visible circle:nth-child(2) { stroke-width: 5; } +@media (hover: hover) { .mg .mg-hit:hover .mg-ring { stroke-opacity: 0.5; } } +@media (prefers-reduced-motion: reduce) { .mg .mg-ring { transition: none; } } diff --git a/docs/blog/assets/media/agent-tools-today-2026-10-27/motion.js b/docs/blog/assets/media/agent-tools-today-2026-10-27/motion.js new file mode 100644 index 0000000000..9e4bd8f159 --- /dev/null +++ b/docs/blog/assets/media/agent-tools-today-2026-10-27/motion.js @@ -0,0 +1,188 @@ +/* Bright coded scene for "Agent tools today, 27 Oct 2026". Vanilla JS, no library. +
holds a still image; this script swaps in a live SVG. + Plays only in view, honours reduced motion, "?mgstill" freezes each scene on its still frame. */ +(() => { + const NS = "http://www.w3.org/2000/svg"; + const INK = "#1A1320", YEL = "#FFCA54", BLUE = "#6C8EF5", LIL = "#B69CFF", MINT = "#7FD8AE", SKY = "#9AD8FF", SOFT = "#F1ECF9", MUTE = "#7A6A88"; + const SANS = '"Space Grotesk", system-ui, sans-serif', MONO = '"JetBrains Mono", ui-monospace, monospace'; + const el = (t, a = {}, p) => { const n = document.createElementNS(NS, t); for (const k in a) n.setAttribute(k, a[k]); if (p) p.appendChild(n); return n; }; + const txt = (p, x, y, s, a = {}) => { const n = el("text", Object.assign({ x, y, "font-family": SANS, "font-size": 24, "font-weight": 600, fill: INK }, a), p); n.textContent = s; return n; }; + const cl = (v, a = 0, b = 1) => Math.max(a, Math.min(b, v)); + const seg = (t, a, b) => cl((t - a) / (b - a)); + const oc = (x) => 1 - Math.pow(1 - x, 3); + const ob = (x) => { const c = 1.70158; return 1 + (c + 1) * Math.pow(x - 1, 3) + c * Math.pow(x - 1, 2); }; + const io = (x) => (x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2); + const tf = (n, x, y, s = 1, r = 0) => n.setAttribute("transform", `translate(${x} ${y}) rotate(${r}) scale(${s})`); + const button = (g, label, fn) => { + g.setAttribute("role", "button"); g.setAttribute("tabindex", "0"); g.setAttribute("aria-label", label); g.classList.add("mg-hit"); + g.addEventListener("click", fn); + g.addEventListener("keydown", (e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); fn(); } }); + }; + + const SC = {}; + + /* ---- a laptop runs an open weight model on its own: Files go in, a Chart comes out, and the Web search switch cuts the dotted line to Online ---- */ + SC.today = { + w: 1600, h: 1200, dur: 11, still: 9.6, + build(svg, api) { + const A = (o) => Object.assign({ stroke: INK, "stroke-width": 4, "stroke-linejoin": "round", "stroke-linecap": "round" }, o); + const lp = (a, b, p) => a + (b - a) * p; + /* geometry */ + const LX = 440, LW = 720, LT = 480, HINGE = 860, CX = 800, CHX = 900, CHY = 670, FY = 670; + const SWX = 850, SWY = 338, SWW = 132, SWH = 66; + const LINE_TOP = 272, LINE_BOT = LT - 10; + /* beats, in seconds */ + const T_LINE = 0.7, T_SW = 0.9, T_FOLD = 1.4, T_SLIDE = 2.4, T_PULSE = 3.8, T_OUT = 4.6, T_BARS = 5.5, T_OFF = 7.0; + + /* the whole picture sits 50 lower so it is centred top to bottom */ + const inner = el("g", { transform: "translate(0 50)" }, svg); + const defs = el("defs", {}, svg); + + /* the dotted line from the cloud down to the laptop; it grows in, then dots flow down it */ + const lclip = el("clipPath", { id: "mg-today-line" }, defs); + const lrect = el("rect", { x: CX - 20, y: LINE_TOP - 10, width: 40, height: 0 }, lclip); + const lineG = el("g", { "clip-path": "url(#mg-today-line)" }, inner); + const line = el("path", { d: `M ${CX} ${LINE_TOP} V ${LINE_BOT}`, fill: "none", stroke: BLUE, "stroke-width": 10, "stroke-linecap": "round", "stroke-dasharray": "1 19" }, lineG); + + /* the cloud, labelled Online */ + const cloud = el("g", {}, inner); + el("path", A({ d: "M640 270 A70 70 0 0 1 620 140 A95 95 0 0 1 790 80 A110 110 0 0 1 960 130 A80 80 0 0 1 980 270 Z", fill: SKY }), cloud); + txt(cloud, CX, 214, "Online", { "text-anchor": "middle", "font-size": 46, "font-weight": 700 }); + + /* the Chart sheet waits behind the screen, so it is drawn before the laptop */ + const sheet = el("g", {}, inner); + el("rect", A({ x: -100, y: -125, width: 200, height: 250, rx: 16, fill: "#fff" }), sheet); + txt(sheet, 0, -74, "Chart", { "text-anchor": "middle", "font-size": 36, "font-weight": 700 }); + const BARS = [[-66, 60, BLUE], [-28, 100, MINT], [10, 76, YEL], [48, 130, LIL]]; + const bars = BARS.map(([x, h, f]) => ({ h, n: el("rect", A({ x, y: 95, width: 28, height: 0, rx: 5, fill: f, "stroke-width": 3 }), sheet) })); + el("path", A({ d: "M-78 95 H80", fill: "none", "stroke-width": 3.5 }), sheet); + + /* the laptop, labelled Your computer */ + const laptop = el("g", {}, inner); + el("path", A({ d: `M${LX - 40} ${HINGE} H${LX + LW + 40} L${LX + LW + 74} ${HINGE + 46} Q${LX + LW + 78} ${HINGE + 56} ${LX + LW + 66} ${HINGE + 56} H${LX - 66} Q${LX - 78} ${HINGE + 56} ${LX - 74} ${HINGE + 46} Z`, fill: SOFT }), laptop); + txt(laptop, CX, HINGE + 128, "Your computer", { "text-anchor": "middle", "font-size": 46, "font-weight": 700 }); + el("rect", A({ x: LX, y: LT, width: LW, height: HINGE - LT, rx: 24, fill: BLUE }), laptop); + el("rect", A({ x: LX + 22, y: LT + 22, width: LW - 44, height: HINGE - LT - 44, rx: 12, fill: "#fff", "stroke-width": 3 }), laptop); + + /* the chip, labelled Open weight model, with pins that light up while it works */ + const chip = el("g", {}, laptop); + const pinsInk = el("g", {}, chip), pinsLit = el("g", { opacity: 0 }, chip); + for (let i = 0; i < 8; i++) { + const x = -160 + i * 44 - 7; + [[-83, pinsInk, INK], [65, pinsInk, INK], [-83, pinsLit, YEL], [65, pinsLit, YEL]].forEach(([y, g, f]) => el("rect", A({ x, y, width: 14, height: 18, rx: 3, fill: f, "stroke-width": 2.5 }), g)); + } + el("rect", A({ x: -190, y: -65, width: 380, height: 130, rx: 18, fill: LIL }), chip); + txt(chip, 0, 12, "Open weight model", { "text-anchor": "middle", "font-size": 33, "font-weight": 700 }); + + /* the folder, labelled Files; it slides over the frame into the screen, so it is drawn after the laptop */ + const folder = el("g", {}, inner); + el("path", A({ d: "M-95 68 V-78 Q-95 -85 -88 -85 H-30 L-14 -68 H88 Q95 -68 95 -61 V68 Q95 75 88 75 H-88 Q-95 75 -95 68 Z", fill: YEL }), folder); + el("rect", A({ x: -74, y: -60, width: 148, height: 40, rx: 6, fill: "#fff", "stroke-width": 3 }), folder); + el("rect", A({ x: -95, y: -46, width: 190, height: 121, rx: 10, fill: YEL }), folder); + txt(folder, 0, 32, "Files", { "text-anchor": "middle", "font-size": 38, "font-weight": 700 }); + + /* the Web search switch beside the line: mint and knob right when on, soft and knob left when off */ + const sw = el("g", {}, inner), swFace = el("g", {}, sw); + el("rect", { x: SWX - 12, y: SWY - 12, width: SWW + 24 + 250, height: SWH + 24, rx: (SWH + 24) / 2, fill: "none", stroke: INK, "stroke-width": 3, "stroke-dasharray": "10 8", class: "mg-ring" }, swFace); + el("rect", { x: SWX - 12, y: SWY - 12, width: SWW + 24 + 250, height: SWH + 24, rx: (SWH + 24) / 2, fill: "#fff", opacity: 0 }, swFace); + el("rect", A({ x: SWX, y: SWY, width: SWW, height: SWH, rx: SWH / 2, fill: SOFT, "stroke-width": 3.5 }), swFace); + const swOn = el("rect", A({ x: SWX, y: SWY, width: SWW, height: SWH, rx: SWH / 2, fill: MINT, "stroke-width": 3.5 }), swFace); + const knob = el("circle", A({ cx: SWX + SWW - SWH / 2, cy: SWY + SWH / 2, r: 24, fill: "#fff", "stroke-width": 3.5 }), swFace); + txt(swFace, SWX + SWW + 26, SWY + SWH / 2 + 13, "Web search", { "font-size": 38, "font-weight": 600 }); + + /* tap the switch, or Enter or Space on it: Web search flips, and the dotted line follows */ + let user = false, from = 1, to = 1, at = -99, kv = 1, last = 0; + button(sw, "Web search", () => { + from = kv; to = kv < 0.5 ? 1 : 0; user = true; + at = calm || frozen ? -99 : api.now(); + sw.setAttribute("aria-checked", to ? "true" : "false"); + if (calm || frozen) D(last, api.now()); + }); + sw.setAttribute("role", "switch"); + sw.setAttribute("aria-checked", "true"); + + const pop = (n, p, x, y, s = 1) => { tf(n, x, y, (s * ob(p)).toFixed(3)); n.setAttribute("opacity", p > 0 ? 1 : 0); }; + const D = (t, now = 0) => { + last = t; + inner.setAttribute("opacity", (oc(seg(t, 0, 0.3)) * (1 - io(seg(t, 10.4, 10.9)))).toFixed(3)); + laptop.setAttribute("opacity", io(seg(t, 0.1, 0.5)).toFixed(3)); + cloud.setAttribute("opacity", io(seg(t, 0.2, 0.6)).toFixed(3)); + sw.setAttribute("opacity", io(seg(t, T_SW, T_SW + 0.4)).toFixed(3)); + + /* switch value: the timeline flips it off once; after a tap it is the reader's */ + let lv; + if (user) { + const d = now - at; + kv = lp(from, to, io(seg(d, 0, 0.35))); + lv = lp(from, to, io(seg(d, 0.05, 0.6))); + } else { + kv = 1 - io(seg(t, T_OFF, T_OFF + 0.4)); + lv = 1 - io(seg(t, T_OFF + 0.1, T_OFF + 0.9)); + } + knob.setAttribute("cx", lp(SWX + SWH / 2, SWX + SWW - SWH / 2, kv).toFixed(1)); + swOn.setAttribute("opacity", kv.toFixed(3)); + sw.setAttribute("aria-checked", kv >= 0.5 ? "true" : "false"); + + /* the dotted line grows down to the laptop, dots flow while it is on, and it fades when Web search is off */ + lrect.setAttribute("height", ((LINE_BOT - LINE_TOP + 20) * io(seg(t, T_LINE, T_LINE + 0.7))).toFixed(1)); + line.setAttribute("stroke-dashoffset", (-(t * 40) % 20).toFixed(2)); + lineG.setAttribute("opacity", lp(0.22, 1, lv).toFixed(3)); + + /* the folder pops in on the left, then slides into the screen */ + const sp = io(seg(t, T_SLIDE, T_SLIDE + 1.2)); + pop(folder, seg(t, T_FOLD, T_FOLD + 0.45), lp(240, 585, sp), FY, lp(1, 0.8, sp)); + + /* the chip works: a small bump and lit pins */ + const cp = seg(t, T_PULSE, T_PULSE + 0.8), bump = Math.sin(Math.PI * cp); + tf(chip, CHX, CHY, (1 + 0.06 * bump).toFixed(3)); + pinsLit.setAttribute("opacity", bump.toFixed(3)); + + /* the Chart sheet slides out of the right side, then its bars grow */ + const op = io(seg(t, T_OUT, T_OUT + 1.2)); + sheet.setAttribute("opacity", t >= T_OUT ? 1 : 0); + tf(sheet, lp(1000, 1340, op).toFixed(1), CHY, 1, 4 * Math.sin(Math.PI * op)); + bars.forEach((b, i) => { + const h = b.h * oc(seg(t, T_BARS + i * 0.18, T_BARS + i * 0.18 + 0.5)); + b.n.setAttribute("y", (95 - h).toFixed(1)); + b.n.setAttribute("height", h.toFixed(1)); + b.n.setAttribute("opacity", h > 0.5 ? 1 : 0); + }); + + swFace.setAttribute("transform", `translate(${SWX + SWW / 2} ${SWY + SWH / 2}) scale(${(1 - 0.05 * Math.sin(Math.PI * seg(now - at, 0, 0.2))).toFixed(3)}) translate(${-(SWX + SWW / 2)} ${-(SWY + SWH / 2)})`); + }; + return D; + }, + }; + + /* ---- player ---- */ + const q = new URLSearchParams(location.search), frozen = q.has("mgstill"), fixed = parseFloat(q.get("mgstill")); + const calm = matchMedia("(prefers-reduced-motion: reduce)").matches; + const mount = (fig) => { + const sc = SC[fig.dataset.scene], img = fig.querySelector("img"); if (!sc || !img) return; + const W = sc.w || 800, H = sc.h || 600; + const svg = el("svg", { viewBox: `0 0 ${W} ${H}`, class: "mg-svg", role: "group", "aria-label": img.alt || "" }); + svg.style.aspectRatio = `${W} / ${H}`; + el("rect", { width: W, height: H, fill: "#fff" }, svg); + img.replaceWith(svg); + let off = 0, raf = 0, seen = false, held = calm, once = false; + const base = performance.now(), clock = () => (performance.now() - base) / 1000; + let draw = () => {}; + /* "once": a replay asked for under reduced motion plays through one time, then holds on the still */ + const frame = () => { const now = clock(); if (once && now + off >= sc.still) { once = false; held = true; } draw(held ? sc.still : (((now + off) % sc.dur) + sc.dur) % sc.dur, now); }; + const tick = () => { cancelAnimationFrame(raf); frame(); if (seen && !held) raf = requestAnimationFrame(tick); }; + const api = { now: clock, seek: (s, hold) => { off = s - clock(); held = false; once = !!hold; tick(); }, poke: () => { held = false; tick(); }, redraw: () => frame() }; + draw = sc.build(svg, api); + if (frozen) { draw(isNaN(fixed) ? sc.still : fixed, 0); return; } + new IntersectionObserver(([e]) => { + seen = e.isIntersecting; + if (seen) { tick(); if (!fig.dataset.sent && window.posthog) { fig.dataset.sent = 1; window.posthog.capture("blog_scene_view", { slug: location.pathname.split("/").filter(Boolean).pop(), scene: fig.dataset.scene }); } } + else cancelAnimationFrame(raf); + }, { threshold: 0.25 }).observe(fig); + svg.addEventListener("click", () => { if (!fig.dataset.hit && window.posthog) { fig.dataset.hit = 1; window.posthog.capture("blog_scene_interact", { slug: location.pathname.split("/").filter(Boolean).pop(), scene: fig.dataset.scene }); } }); + frame(); + }; + const go = () => document.querySelectorAll("figure.mg[data-scene]").forEach(mount); + const fonts = document.fonts && document.fonts.load ? Promise.all([document.fonts.load('700 32px "Space Grotesk"'), document.fonts.load('500 20px "Space Grotesk"'), document.fonts.load('700 20px "JetBrains Mono"')]).catch(() => {}) : Promise.resolve(); + const start = () => fonts.then(go, go); + if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", start); else start(); +})(); diff --git a/docs/blog/assets/media/agent-tools-today-2026-10-27/today.png b/docs/blog/assets/media/agent-tools-today-2026-10-27/today.png new file mode 100644 index 0000000000..0e37b10242 Binary files /dev/null and b/docs/blog/assets/media/agent-tools-today-2026-10-27/today.png differ diff --git a/docs/blog/assets/media/claude-cowork-alternatives/hero.png b/docs/blog/assets/media/claude-cowork-alternatives/hero.png new file mode 100644 index 0000000000..fc51d25f2d Binary files /dev/null and b/docs/blog/assets/media/claude-cowork-alternatives/hero.png differ diff --git a/docs/blog/assets/media/claude-cowork-alternatives/lineup.png b/docs/blog/assets/media/claude-cowork-alternatives/lineup.png new file mode 100644 index 0000000000..2b3cb18945 Binary files /dev/null and b/docs/blog/assets/media/claude-cowork-alternatives/lineup.png differ diff --git a/docs/blog/assets/media/claude-cowork-alternatives/motion.css b/docs/blog/assets/media/claude-cowork-alternatives/motion.css new file mode 100644 index 0000000000..a684cd92ff --- /dev/null +++ b/docs/blog/assets/media/claude-cowork-alternatives/motion.css @@ -0,0 +1,13 @@ +/* Bright coded scenes for "Claude Cowork alternatives". Pairs with motion.js. */ +.prose figure.mg { margin: 42px 0; } +.prose figure.mg img, .mg .mg-svg { display: block; width: 100%; height: auto; border: 1px solid #1A1320; border-radius: 18px; background: #fff; } +.mg figcaption { font: 500 13px/1.5 "Space Grotesk", system-ui, sans-serif; color: #6B5878; padding-top: 10px; text-align: center; } +.mg .mg-svg { touch-action: manipulation; -webkit-tap-highlight-color: transparent; } +.mg .mg-svg text { -webkit-user-select: none; user-select: none; pointer-events: none; } +.mg .mg-hit { cursor: pointer; outline: none; } +.mg [role="slider"] { cursor: grab; touch-action: none; } +.mg .mg-ring { stroke-opacity: 0; transition: stroke-opacity 0.15s; } +.mg .mg-hit:focus-visible .mg-ring { stroke-opacity: 1; } +.mg [role="slider"]:focus-visible circle:nth-child(2) { stroke-width: 5; } +@media (hover: hover) { .mg .mg-hit:hover .mg-ring { stroke-opacity: 0.5; } } +@media (prefers-reduced-motion: reduce) { .mg .mg-ring { transition: none; } } diff --git a/docs/blog/assets/media/claude-cowork-alternatives/motion.js b/docs/blog/assets/media/claude-cowork-alternatives/motion.js new file mode 100644 index 0000000000..cfa1a07cd1 --- /dev/null +++ b/docs/blog/assets/media/claude-cowork-alternatives/motion.js @@ -0,0 +1,267 @@ +/* Bright coded scenes for "Claude Cowork alternatives". Vanilla JS, no library. +
holds a still image; this script swaps in a live SVG. + Plays only in view, honours reduced motion, "?mgstill" freezes each scene on its still frame. */ +(() => { + const NS = "http://www.w3.org/2000/svg"; + const INK = "#1A1320", YEL = "#FFCA54", BLUE = "#6C8EF5", LIL = "#B69CFF", MINT = "#7FD8AE", SKY = "#9AD8FF", SOFT = "#F1ECF9", MUTE = "#7A6A88"; + const SANS = '"Space Grotesk", system-ui, sans-serif', MONO = '"JetBrains Mono", ui-monospace, monospace'; + const el = (t, a = {}, p) => { const n = document.createElementNS(NS, t); for (const k in a) n.setAttribute(k, a[k]); if (p) p.appendChild(n); return n; }; + const txt = (p, x, y, s, a = {}) => { const n = el("text", Object.assign({ x, y, "font-family": SANS, "font-size": 24, "font-weight": 600, fill: INK }, a), p); n.textContent = s; return n; }; + const cl = (v, a = 0, b = 1) => Math.max(a, Math.min(b, v)); + const seg = (t, a, b) => cl((t - a) / (b - a)); + const oc = (x) => 1 - Math.pow(1 - x, 3); + const ob = (x) => { const c = 1.70158; return 1 + (c + 1) * Math.pow(x - 1, 3) + c * Math.pow(x - 1, 2); }; + const io = (x) => (x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2); + const tf = (n, x, y, s = 1, r = 0) => n.setAttribute("transform", `translate(${x} ${y}) rotate(${r}) scale(${s})`); + const button = (g, label, fn) => { + g.setAttribute("role", "button"); g.setAttribute("tabindex", "0"); g.setAttribute("aria-label", label); g.classList.add("mg-hit"); + g.addEventListener("click", fn); + g.addEventListener("keydown", (e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); fn(); } }); + }; + + const CAP = "#6B5878"; + const name = (p, x, y, s, a = {}) => txt(p, x, y, s, Object.assign({ "font-family": MONO, "font-weight": 700 }, a)); + const fit = (n, w) => { const L = n.getComputedTextLength(); if (L > w) n.setAttribute("font-size", parseFloat(n.getAttribute("font-size")) * w / L); }; + const pill = (p, x, y, s, fill, fs = 18, h = 40) => { + const g = el("g", {}, p); + const r = el("rect", { x, y, height: h, rx: h / 2, fill, stroke: INK, "stroke-width": 2.5 }, g); + const t = name(g, x + 16, y + h / 2 + fs * 0.36, s, { "font-size": fs }); + const w = t.getComputedTextLength() + 32; r.setAttribute("width", w); + return { g, w }; + }; + const lines = (p, cx, y, s, fs, w, gap) => { const ws = s.split(" "), y0 = ws.length > 1 ? y - gap / 2 : y; ws.forEach((wd, i) => fit(name(p, cx, y0 + i * gap, wd, { "text-anchor": "middle", "font-size": fs }), w)); }; + let uid = 0; + + /* ---- small icons, each drawn around 0,0 in about 64 by 56 ---- */ + const ART = { + laptop(g) { + el("rect", { x: -24, y: -24, width: 48, height: 34, rx: 4, fill: SKY, stroke: INK, "stroke-width": 3 }, g); + el("path", { d: "M-32 12 H32 L27 21 H-27 Z", fill: "#fff", stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, g); + }, + desks(g) { + [[-28, -14], [4, -14], [-28, 14], [4, 14]].forEach(([x, y]) => { + el("rect", { x: x + 7, y: y - 10, width: 10, height: 7, rx: 1.5, fill: "#fff", stroke: INK, "stroke-width": 2 }, g); + el("rect", { x, y: y - 2, width: 24, height: 12, rx: 2.5, fill: YEL, stroke: INK, "stroke-width": 2.5 }, g); + }); + }, + cloud(g) { + el("path", { d: "M-20 18 H22 A14 14 0 0 0 24 -10 A18 18 0 0 0 -10 -14 A13 13 0 0 0 -22 -2 A10 10 0 0 0 -20 18 Z", fill: SKY, stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, g); + }, + terminal(g) { + el("rect", { x: -30, y: -24, width: 60, height: 46, rx: 6, fill: "#fff", stroke: INK, "stroke-width": 3 }, g); + el("path", { d: "M-30 -12 H30", stroke: INK, "stroke-width": 2.5 }, g); + [[-22, MINT], [-14, YEL], [-6, SKY]].forEach(([x, c]) => el("circle", { cx: x, cy: -18, r: 2.6, fill: c, stroke: INK, "stroke-width": 1.5 }, g)); + el("path", { d: "M-20 -2 L-11 5 L-20 12 M-4 13 H12", stroke: INK, "stroke-width": 3, fill: "none", "stroke-linecap": "round", "stroke-linejoin": "round" }, g); + }, + bubble(g) { + el("path", { d: "M-26 -22 H26 Q32 -22 32 -16 V6 Q32 12 26 12 H-4 L-16 24 V12 H-26 Q-32 12 -32 6 V-16 Q-32 -22 -26 -22 Z", fill: LIL, stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, g); + [-12, 0, 12].forEach((x) => el("circle", { cx: x, cy: -5, r: 3.2, fill: INK }, g)); + }, + server(g) { + el("rect", { x: -22, y: -26, width: 44, height: 52, rx: 5, fill: "#fff", stroke: INK, "stroke-width": 3 }, g); + [-9, 8].forEach((y) => el("path", { d: `M-22 ${y} H22`, stroke: INK, "stroke-width": 2.5 }, g)); + [-17, 0, 17].forEach((y) => { el("path", { d: `M-14 ${y} H2`, stroke: INK, "stroke-width": 2.5, "stroke-linecap": "round" }, g); el("circle", { cx: 12, cy: y, r: 3, fill: MINT, stroke: INK, "stroke-width": 1.5 }, g); }); + }, + }; + + const SC = {}; + + /* ---- 1. six cards drop onto a shelf; Claude Cowork stands apart ---- */ + SC.lineup = { + dur: 7, still: 7, + build(svg, api) { + const NAMES = ["Hob", "Munder Difflin", "ChatGPT Work", "Goose", "OpenClaw", "Hermes Agent"]; + const DRAW = [ART.laptop, ART.desks, ART.cloud, ART.terminal, ART.bubble, ART.server]; + const CW = 90, CH = 196, GAP = 7, X0 = 194, SY = 386, TOP = SY - CH; + el("rect", { x: 28, y: SY, width: 128, height: 16, rx: 8, fill: SOFT, stroke: INK, "stroke-width": 3 }, svg); + el("rect", { x: 36, y: TOP, width: 112, height: CH, rx: 14, fill: SOFT, stroke: INK, "stroke-width": 3 }, svg); + lines(svg, 92, TOP + 104, "Claude Cowork", 17, 96, 24); + el("path", { d: `M172 ${TOP - 14} V${SY + 54}`, stroke: INK, "stroke-width": 2, "stroke-dasharray": "2 10", "stroke-linecap": "round" }, svg); + const shelf = el("g", {}, svg); + el("rect", { x: 184, y: TOP - 40, width: 604, height: CH + 116, rx: 20, fill: "#fff", "fill-opacity": 0, class: "mg-ring", stroke: INK, "stroke-width": 2, "stroke-dasharray": "3 7" }, shelf); + [250, 712].forEach((x) => el("path", { d: `M${x} ${SY + 16} V${SY + 58} L${x + 34} ${SY + 16}`, stroke: INK, "stroke-width": 3, fill: "none", "stroke-linejoin": "round", "stroke-linecap": "round" }, shelf)); + const cards = NAMES.map((n, i) => { + const x = X0 + i * (CW + GAP), g = el("g", {}, shelf); + el("rect", { x, y: TOP, width: CW, height: CH, rx: 14, fill: "#fff", stroke: INK, "stroke-width": 3 }, g); + const ic = el("g", {}, g); DRAW[i](ic); + lines(g, x + CW / 2, TOP + 152, n, 16, CW - 12, 22); + return { g, ic, cx: x + CW / 2, d: 0.4 + i * 0.5 }; + }); + el("rect", { x: 182, y: SY, width: 600, height: 16, rx: 8, fill: YEL, stroke: INK, "stroke-width": 3 }, shelf); + button(shelf, "Replay the drop", () => api.seek(0)); + return (t) => { + cards.forEach((c) => { + const p = seg(t, c.d, c.d + 0.45), land = Math.sin(seg(t, c.d + 0.45, c.d + 0.75) * Math.PI); + c.g.setAttribute("opacity", t < c.d ? 0 : 1); + c.g.setAttribute("transform", `translate(0 ${-460 * (1 - p * p) - 12 * land})`); + const k = seg(t, c.d + 0.45, c.d + 0.85); + tf(c.ic, c.cx, TOP + 64, k <= 0 ? 0.001 : ob(k)); + }); + }; + }, + }; + + /* ---- 2. where the work runs: vendor cloud or your hardware ---- */ + SC.where = { + dur: 10, still: 10, + build(svg, api) { + const id = `mgc${++uid}`, TX = 62, TW = 676, SEG = 150; + el("rect", { x: 30, y: 30, width: 740, height: 540, rx: 26, fill: "#fff", stroke: INK, "stroke-width": 3 }, svg); + el("path", { d: "M54 266 H746", stroke: INK, "stroke-width": 2, "stroke-dasharray": "2 10", "stroke-linecap": "round" }, svg); + txt(svg, TX, 82, "Vendor cloud", { "font-size": 24, "font-weight": 700 }); + txt(svg, TX, 318, "Your hardware", { "font-size": 24, "font-weight": 700 }); + const big = el("g", {}, svg); ART.cloud(big); tf(big, 640, 128, 1.9); + const clip = el("clipPath", { id }, el("defs", {}, svg)); + [208, 520].forEach((y) => el("rect", { x: TX, y, width: TW, height: 18, rx: 9 }, clip)); + const bar = (y, col) => { + el("rect", { x: TX, y, width: TW, height: 18, rx: 9, fill: SOFT }, svg); + const g = el("g", { "clip-path": `url(#${id})` }, svg); + const s = el("rect", { y, width: SEG, height: 18, rx: 9, fill: col }, g); + el("rect", { x: TX, y, width: TW, height: 18, rx: 9, fill: "none", stroke: INK, "stroke-width": 2.5 }, svg); + return { g, s }; + }; + const pos = (t) => TX - SEG + (((t * 260) % (TW + SEG)) + TW + SEG) % (TW + SEG); + const cloudBar = bar(208, BLUE), hwBar = bar(520, MINT); + const tags = []; + const slide = (p, x, y, s, fill, d, dy) => { const g = el("g", {}, svg), tg = pill(g, x, y, s, fill); tags.push({ g, d, dy }); return tg.w; }; + const w1 = slide(svg, TX, 116, "Claude Cowork", SKY, 0.4, -36); + slide(svg, TX + w1 + 16, 116, "ChatGPT Work", SKY, 0.65, -36); + const lap = el("g", {}, svg); tf(lap, 142, 444); + el("rect", { x: -86, y: -102, width: 172, height: 134, rx: 18, fill: "#fff", "fill-opacity": 0, class: "mg-ring", stroke: INK, "stroke-width": 2, "stroke-dasharray": "3 7" }, lap); + const lid = el("g", {}, lap); + el("rect", { x: -62, y: -86, width: 124, height: 86, rx: 8, fill: LIL, stroke: INK, "stroke-width": 3 }, lid); + const screen = el("rect", { x: -52, y: -76, width: 104, height: 66, rx: 4, fill: SKY, stroke: INK, "stroke-width": 2 }, lid); + el("path", { d: "M-76 0 H76 L68 16 H-68 Z", fill: "#fff", stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, lap); + const hx = 252, wa = slide(svg, hx, 352, "Hob", YEL, 1.1, 36), wb = slide(svg, hx, 406, "Goose", YEL, 1.6, 36); + const c2 = hx + Math.max(wa, wb) + 16; + slide(svg, c2, 352, "Munder Difflin", YEL, 1.35, 36); slide(svg, c2 + 0, 406, "OpenClaw", YEL, 1.85, 36); + const srv = el("g", {}, svg); ART.server(srv); tf(srv, 652, 372, 1.25); + const hm = el("g", {}, svg); const hw = pill(hm, 0, 0, "Hermes Agent", YEL).w; hm.remove(); + slide(svg, 652 - hw / 2, 420, "Hermes Agent", YEL, 2.2, 36); + const shut = el("g", {}, svg); + el("rect", { x: 82, y: 474, width: 120, height: 30, rx: 15, fill: SOFT, stroke: INK, "stroke-width": 2 }, shut); + txt(shut, 142, 494, "Laptop closed", { "text-anchor": "middle", "font-size": 15, "font-weight": 600, fill: CAP }); + let user = null, at = 0, hold = pos(4.6); + const shutAmt = (t, now) => user == null ? io(seg(t, 4.6, 5.3)) : user ? io(seg(now - at, 0, 0.6)) : 1 - io(seg(now - at, 0, 0.6)); + let last = 0; + button(lap, "Open or close the laptop lid", () => { user = !(last > 0.5); at = api.now(); api.poke(); }); + return (t, now) => { + tags.forEach((g) => { const k = oc(seg(t, g.d, g.d + 0.5)); g.g.setAttribute("opacity", k); g.g.setAttribute("transform", `translate(0 ${g.dy * (1 - k)})`); }); + const k = shutAmt(t, now); last = k; + lid.setAttribute("transform", `scale(1 ${1 - 0.9 * k})`); screen.setAttribute("opacity", k < 0.5 ? 1 : 0); + const clock = user == null ? t : now; + cloudBar.s.setAttribute("x", pos(t)); cloudBar.g.setAttribute("opacity", seg(t, 0.4, 0.8)); + if (k < 0.5) { if (user != null || t < 4.6) hold = pos(clock); } + else if (user == null) hold = pos(4.6); + hwBar.s.setAttribute("x", hold); hwBar.g.setAttribute("opacity", k < 0.5 ? seg(t, 1.1, 1.5) : 0); + const s = seg(k, 0.75, 1); shut.setAttribute("opacity", s); shut.setAttribute("transform", `translate(142 489) scale(${0.6 + 0.4 * ob(s)}) translate(-142 -489)`); + }; + }, + }; + + /* ---- 3. price tags on a rail ---- */ + SC.tags = { + dur: 7, still: 7, + build(svg, api) { + const RY = 176; + el("path", { d: `M28 ${RY} H772`, stroke: INK, "stroke-width": 6, "stroke-linecap": "round" }, svg); + [28, 772].forEach((x) => el("circle", { cx: x, cy: RY, r: 9, fill: "#fff", stroke: INK, "stroke-width": 3 }, svg)); + const shape = (x, y, w, h) => `M${x + 22} ${y} H${x + w - 22} L${x + w} ${y + 22} V${y + h - 14} Q${x + w} ${y + h} ${x + w - 14} ${y + h} H${x + 14} Q${x} ${y + h} ${x} ${y + h - 14} V${y + 22} Z`; + const all = []; + const tag = (x, w, h, fill, label, draw, d, amp) => { + const cx = x + w / 2, y = RY + 44, g = el("g", {}, svg); + el("path", { d: `M${cx} ${RY} V${y + 15}`, stroke: INK, "stroke-width": 2.5, "stroke-linecap": "round" }, g); + el("path", { d: shape(x - 6, y - 6, w + 12, h + 12), fill: "#fff", "fill-opacity": 0, class: "mg-ring", stroke: INK, "stroke-width": 2, "stroke-dasharray": "3 7" }, g); + el("path", { d: shape(x, y, w, h), fill, stroke: INK, "stroke-width": 3, "stroke-linejoin": "round" }, g); + el("circle", { cx, cy: y + 22, r: 7, fill: "#fff", stroke: INK, "stroke-width": 2.5 }, g); + draw(g, cx, y); + const o = { g, cx, d, amp, tap: -99 }; + button(g, label, () => { o.tap = api.now(); api.poke(); }); + all.push(o); + }; + const BIG = 136, SM = 76; + [["Claude Pro", LIL], ["ChatGPT Plus", SKY]].forEach(([n, c], i) => tag(34 + i * (BIG + 14), BIG, 230, c, `${n}, $20 a month`, (g, cx, y) => { + lines(g, cx, y + 92, n, 22, BIG - 16, 28); + el("path", { d: `M${cx - 48} ${y + 140} H${cx + 48}`, stroke: INK, "stroke-width": 2, "stroke-dasharray": "2 8", "stroke-linecap": "round" }, g); + fit(name(g, cx, y + 184, "$20 a month", { "text-anchor": "middle", "font-size": 17 }), BIG - 16); + }, 0.15, 12)); + const FREE = ["Hob", "Munder Difflin", "Goose", "OpenClaw", "Hermes Agent"], FX = 346; + FREE.forEach((n, i) => tag(FX + i * (SM + 7), SM, 160, YEL, `${n}, Free`, (g, cx, y) => { + lines(g, cx, y + 66, n, 14, SM - 10, 19); + name(g, cx, y + 132, "Free", { "text-anchor": "middle", "font-size": 22 }); + }, 1.2 + i * 0.35, 40)); + const lab = el("g", {}, svg), LX = FX + (5 * SM + 28) / 2; + const lr = el("rect", { y: 418, height: 42, rx: 21, fill: MINT, stroke: INK, "stroke-width": 2.5 }, lab); + const lt = txt(lab, LX, 446, "Bring a model", { "text-anchor": "middle", "font-size": 20, "font-weight": 700 }); + const lw = lt.getComputedTextLength() + 40; lr.setAttribute("x", LX - lw / 2); lr.setAttribute("width", lw); + return (t, now) => { + all.forEach((o) => { + const s = t - o.d, u = now - o.tap; + let a = s < 0 ? o.amp : o.amp * Math.exp(-3.2 * s) * Math.cos(7 * s); + if (u >= 0 && u < 4) a += 20 * Math.exp(-2.4 * u) * Math.sin(7.5 * u); + o.g.setAttribute("opacity", o.amp > 20 ? seg(t, o.d - 0.05, o.d + 0.12) : 1); + o.g.setAttribute("transform", `rotate(${a} ${o.cx} ${RY})`); + }); + const k = seg(t, 3.4, 3.8); + lab.setAttribute("opacity", k > 0 ? 1 : 0); + lab.setAttribute("transform", `translate(${LX} 439) scale(${k <= 0 ? 0.001 : ob(k)}) translate(${-LX} -439)`); + }; + }, + }; + + /* ---- title card, 16 by 9 ---- */ + SC.hero = { + w: 960, h: 540, dur: 1, still: 0, + build(svg) { + const pr = el("rect", { x: 64, y: 78, height: 42, rx: 21, fill: SOFT, stroke: INK, "stroke-width": 2.5 }, svg); + const pt = txt(svg, 86, 106, "Comparisons", { "font-size": 20, "font-weight": 700 }); + pr.setAttribute("width", pt.getComputedTextLength() + 44); + txt(svg, 62, 212, "Claude Cowork", { "font-size": 62, "font-weight": 700 }); + txt(svg, 62, 292, "alternatives", { "font-size": 62, "font-weight": 700 }); + el("path", { d: "M66 316 H430", stroke: YEL, "stroke-width": 14, "stroke-linecap": "round" }, svg); + txt(svg, 64, 378, "Six agents for office work", { "font-size": 28, "font-weight": 500, fill: MUTE }); + txt(svg, 64, 446, "Checked 27 Oct 2026", { "font-size": 20, "font-weight": 600, fill: CAP }); + const CX = 562, CY = 258; + el("rect", { x: CX, y: CY - 52, width: 100, height: 100, rx: 14, fill: "#fff", stroke: INK, "stroke-width": 3 }, svg); + lines(svg, CX + 50, CY + 6, "Claude Cowork", 18, 86, 26); + el("path", { d: `M${CX + 110} ${CY} H${CX + 136} M${CX + 126} ${CY - 10} L${CX + 138} ${CY} L${CX + 126} ${CY + 10}`, stroke: INK, "stroke-width": 3.5, fill: "none", "stroke-linecap": "round", "stroke-linejoin": "round" }, svg); + const PX = 828, PY = 408, fills = [YEL, LIL, "#fff", "#fff", "#fff", "#fff"]; + fills.forEach((f, i) => { + const a = -30 + i * 12, g = el("g", { transform: `rotate(${a} ${PX} ${PY})` }, svg); + el("rect", { x: PX - 26, y: PY - 187, width: 52, height: 74, rx: 9, fill: f, stroke: INK, "stroke-width": 3 }, g); + }); + return () => {}; + }, + }; + + /* ---- player ---- */ + const q = new URLSearchParams(location.search), frozen = q.has("mgstill"), fixed = parseFloat(q.get("mgstill")); + const calm = matchMedia("(prefers-reduced-motion: reduce)").matches; + const mount = (fig) => { + const sc = SC[fig.dataset.scene], img = fig.querySelector("img"); if (!sc || !img) return; + const W = sc.w || 800, H = sc.h || 600; + const svg = el("svg", { viewBox: `0 0 ${W} ${H}`, class: "mg-svg", role: "group", "aria-label": img.alt || "" }); + svg.style.aspectRatio = `${W} / ${H}`; + el("rect", { width: W, height: H, fill: "#fff" }, svg); + img.replaceWith(svg); + let off = 0, raf = 0, seen = false, held = calm; + const base = performance.now(), clock = () => (performance.now() - base) / 1000; + let draw = () => {}; + const frame = () => { const now = clock(); draw(held ? sc.still : (((now + off) % sc.dur) + sc.dur) % sc.dur, now); }; + const tick = () => { cancelAnimationFrame(raf); frame(); if (seen && !held) raf = requestAnimationFrame(tick); }; + const api = { now: clock, seek: (s) => { off = s - clock(); held = false; tick(); }, poke: () => { held = false; tick(); } }; + draw = sc.build(svg, api); + if (frozen) { draw(isNaN(fixed) ? sc.still : fixed, 0); return; } + new IntersectionObserver(([e]) => { + seen = e.isIntersecting; + if (seen) { tick(); if (!fig.dataset.sent && window.posthog) { fig.dataset.sent = 1; window.posthog.capture("blog_scene_view", { slug: location.pathname.split("/").filter(Boolean).pop(), scene: fig.dataset.scene }); } } + else cancelAnimationFrame(raf); + }, { threshold: 0.25 }).observe(fig); + svg.addEventListener("click", () => { if (!fig.dataset.hit && window.posthog) { fig.dataset.hit = 1; window.posthog.capture("blog_scene_interact", { slug: location.pathname.split("/").filter(Boolean).pop(), scene: fig.dataset.scene }); } }); + frame(); + }; + const go = () => document.querySelectorAll("figure.mg[data-scene]").forEach(mount); + const fonts = document.fonts && document.fonts.load ? Promise.all([document.fonts.load('700 32px "Space Grotesk"'), document.fonts.load('500 20px "Space Grotesk"'), document.fonts.load('700 20px "JetBrains Mono"')]).catch(() => {}) : Promise.resolve(); + const start = () => fonts.then(go, go); + if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", start); else start(); +})(); diff --git a/docs/blog/assets/media/claude-cowork-alternatives/tags.png b/docs/blog/assets/media/claude-cowork-alternatives/tags.png new file mode 100644 index 0000000000..f3e54d5326 Binary files /dev/null and b/docs/blog/assets/media/claude-cowork-alternatives/tags.png differ diff --git a/docs/blog/assets/media/claude-cowork-alternatives/where.png b/docs/blog/assets/media/claude-cowork-alternatives/where.png new file mode 100644 index 0000000000..c16d98de71 Binary files /dev/null and b/docs/blog/assets/media/claude-cowork-alternatives/where.png differ diff --git a/docs/blog/best-ai-coding-agents/index.html b/docs/blog/best-ai-coding-agents/index.html index a994005922..763ebd7351 100644 --- a/docs/blog/best-ai-coding-agents/index.html +++ b/docs/blog/best-ai-coding-agents/index.html @@ -468,50 +468,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/best-claude-code-multi-agent-tools/index.html b/docs/blog/best-claude-code-multi-agent-tools/index.html index 6239ad3e22..c38f17ada5 100644 --- a/docs/blog/best-claude-code-multi-agent-tools/index.html +++ b/docs/blog/best-claude-code-multi-agent-tools/index.html @@ -436,50 +436,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/black-october-php2shell/index.html b/docs/blog/black-october-php2shell/index.html index 1b00fded4d..0df3092383 100644 --- a/docs/blog/black-october-php2shell/index.html +++ b/docs/blog/black-october-php2shell/index.html @@ -326,50 +326,50 @@

FAQ

Related in News

- +
- + 5 min
-

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

+

Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

+

Agent Tools Today, 26 Oct 2026: Kimi K3.1 Pro, Unified Claude Enterprise, ThinkRail

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents from 23 to 26 Oct 2026, each with its source.

News - Read → + Read →
- +
- + 5 min
-

Agent Tools Today, 22 Oct 2026: Claude API 2026-10-21, LayerFS 1.0, PHP2Shell

-

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 22 Oct 2026, each with its source.

+

Agent Tools Today, 23 Oct 2026: Claude Duet, OpenAI CLI, Nvidia OpenShell

+

The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in coding agents on 23 Oct 2026, each with its source.

News - Read → + Read →
diff --git a/docs/blog/chatgpt-dots-alternatives/index.html b/docs/blog/chatgpt-dots-alternatives/index.html index 0cb399558b..96a1693dfe 100644 --- a/docs/blog/chatgpt-dots-alternatives/index.html +++ b/docs/blog/chatgpt-dots-alternatives/index.html @@ -350,50 +350,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-code-alternatives/index.html b/docs/blog/claude-code-alternatives/index.html index cf427d8789..4dfc8fc77e 100644 --- a/docs/blog/claude-code-alternatives/index.html +++ b/docs/blog/claude-code-alternatives/index.html @@ -360,50 +360,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-code-orchestration-tools-compared/index.html b/docs/blog/claude-code-orchestration-tools-compared/index.html index b92bd2ded1..3321d1f338 100644 --- a/docs/blog/claude-code-orchestration-tools-compared/index.html +++ b/docs/blog/claude-code-orchestration-tools-compared/index.html @@ -334,50 +334,50 @@

Matching tools to priorities

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-code-vs-antigravity/index.html b/docs/blog/claude-code-vs-antigravity/index.html index c655cb9c1d..6374d96301 100644 --- a/docs/blog/claude-code-vs-antigravity/index.html +++ b/docs/blog/claude-code-vs-antigravity/index.html @@ -275,50 +275,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-code-vs-cursor/index.html b/docs/blog/claude-code-vs-cursor/index.html index e4011e590f..e9b0cc31fb 100644 --- a/docs/blog/claude-code-vs-cursor/index.html +++ b/docs/blog/claude-code-vs-cursor/index.html @@ -353,50 +353,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-cowork-alternatives/index.html b/docs/blog/claude-cowork-alternatives/index.html new file mode 100644 index 0000000000..00ea6fc588 --- /dev/null +++ b/docs/blog/claude-cowork-alternatives/index.html @@ -0,0 +1,445 @@ + + + + + + + + +6 Claude Cowork Alternatives, Free and Open Source Included (Oct 2026) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

+ +
+ +
Title card on white. A pill reading Comparisons, the title Claude Cowork alternatives, the line Six agents for office work and a Checked 27 Oct 2026 line. Beside them a white card labelled Claude Cowork with a small arrow to a fan of six small cards, the first two tinted yellow and lilac.
+ +
+
+

The best Claude Cowork alternatives are Hob if you want a free app with the model on your own computer, Munder Difflin if you want a team of agents, and ChatGPT Work if you want a big vendor’s cloud. Goose, OpenClaw and Hermes Agent round out the list.

+

Munder Difflin is free and open source: a desktop app that runs a team of AI agents for all kinds of knowledge work, coding included, on your own computer. New to Cowork? Start with What is Claude Cowork?. Every fact below comes from pages opened on 27 Oct 2026.

+

Why look for a Claude Cowork alternative?

+

Cowork is good at office work: you describe an outcome and Claude hands back finished documents, organized files or research. Three things send people looking elsewhere. From Anthropic’s help page and pricing page, read 27 Oct 2026:

+
    +
  • It needs a paid plan. “Cowork is available to paid Claude plans (Pro, Max, Team, Enterprise) only.” Pro is $20 a month billed monthly, or $17 a month billed annually.
  • +
  • The work runs in Anthropic’s cloud. “Claude’s work runs on Anthropic’s servers, in an isolated environment, and your sessions and files are saved to your Claude account.” Local files and your browser need the Claude Desktop app open and connected.
  • +
  • It is one Claude. The pricing page says “Claude Cowork is now just Claude”: chat and Cowork are becoming one experience, rolling out to Pro and Max first. Claude can split a task across sub-agents, all on Claude models.
  • +
+

What are the best Claude Cowork alternatives?

+

Six agents that take a task and hand back finished work, five of them free and open source.

+
    +
  1. Hob. A free, MIT licensed desktop app for Mac, Windows and Linux. Its README calls it “A free, open-source alternative to Claude and ChatGPT”. Its Show HN post says it picks an open weight model that fits your computer (Gemma 4 or gpt-oss today), reads and changes files in a folder, runs Python in a sandbox, looks at images, searches the web and takes MCP connectors. v0.2.1 shipped on 26 Oct, and its Show HN post had more than 120 points on 27 Oct.
  2. +
  3. Munder Difflin. A team of AI agents on your own computer, each with a role, for research, writing, email, analysis, ops and code. Agents run on engines such as Claude Code, Codex and Gemini CLI, take MCP servers, skills and plugins, and connect through Slack and webhooks. Work can run on schedules. The Cloud Office, coming soon, keeps agents working with your computer off.
  4. +
  5. ChatGPT Work. OpenAI’s answer to Cowork: “ChatGPT Work is a way to delegate real work to ChatGPT.” It uses your files, plugins and approved tools to create finished files you review, and in the desktop app it can also use local files, apps and the browser.
  6. +
  7. Goose. “a general-purpose AI agent that runs on your machine,” with a desktop app for macOS, Linux and Windows, a CLI and an API. Its README names research, writing, automation and data analysis, not just code. Apache 2.0, part of the Agentic AI Foundation at the Linux Foundation, v1.56.0 on 23 Oct.
  8. +
  9. OpenClaw. An open source assistant that runs on your own computer and answers in the chat apps you already use: Discord, iMessage, Slack, Teams, Telegram, WhatsApp and 20 or more others. MIT, v2026.10.7 on 24 Oct. Its README says it has “no paid tier, hosted service, or token”.
  10. +
  11. Hermes Agent. Nous Research’s agent that writes skills from experience and keeps memory across sessions. It can live on a small server and take work from Telegram, Discord, Slack, WhatsApp or Signal, with a built in scheduler. MIT, v0.22.5 on 23 Oct.
  12. +
+
Animation. On a white background, six cards drop onto a shelf in order: Hob, Munder Difflin, ChatGPT Work, Goose, OpenClaw and Hermes Agent. A card labelled Claude Cowork sits apart on the left. Each of the six cards shows a small icon as it lands: a laptop, a group of desks, a cloud, a terminal, a chat bubble and a server.
Six Claude Cowork alternatives, each from its own README or docs, read 27 Oct 2026.
+

Where does the work run?

+

This is the biggest split. Cowork runs tasks in Anthropic’s cloud; ChatGPT Work can run them in OpenAI’s cloud or locally through its desktop app. The open source picks run on hardware you control.

+
    +
  • On your computer, model included: Hob. Its author says the only parts that go online are web search, which can be turned off in settings, and the MCP connectors you add. Its docs add that it also goes online to download models and, with web access on, to install Python packages.
  • +
  • On your computer, with a model you choose: Goose, Munder Difflin and OpenClaw. Goose’s README lists 15 or more providers, Ollama for local models among them, and says it can use an existing Claude, ChatGPT or Gemini subscription.
  • +
  • On a server you rent: Hermes Agent’s README, read 27 Oct 2026, says it runs “on a $5 VPS, a GPU cluster, or serverless infrastructure”.
  • +
  • In the vendor’s cloud: Claude Cowork, and ChatGPT Work when you choose cloud Work; both reach your computer through their desktop apps.
  • +
+

The trade is plain. Cloud tasks keep going when your laptop closes. Local tasks keep your files on hardware you control, though a hosted model still sees what you send it, and they stop when that machine does.

+
Animation. A white card is split into two lanes, Vendor cloud on top and Your hardware below. Name tags slide into place: Claude Cowork and ChatGPT Work go up to the cloud lane; Hob, Munder Difflin, Goose and OpenClaw drop into the hardware lane beside a laptop; Hermes Agent lands beside a small server box. A laptop lid closes and only the cloud lane keeps a moving progress bar.
Where each alternative runs its work, per each project's README or vendor docs, read 27 Oct 2026. ChatGPT Work also offers local Work in its desktop app.
+

What do Claude Cowork alternatives cost?

+

Prices as listed on 27 Oct 2026:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ToolPriceWhat you also need
Claude CoworkClaude Pro, $20 a month (or $17 a month billed annually)Nothing else.
HobFree, MITA computer that can run an open weight model
Munder DifflinFree and open sourceAn engine and a model you already use.
ChatGPT WorkChatGPT Plus, $20 a month; Pro from $100 a monthNothing else
GooseFree, Apache 2.0A model provider or local model
OpenClawFree, MITA model provider or local model
Hermes AgentFree, MITA model provider, and a server if you want it always on
+
+

ChatGPT Work prices come from OpenAI’s pricing page, which says Work and Codex share usage and lists Work on Plus, Pro, Business and Enterprise.

+
Animation. Two price tags hang on a white rail: Claude Pro 20 dollars a month and ChatGPT Plus 20 dollars a month. Five smaller tags swing in beside them, each reading Free: Hob, Munder Difflin, Goose, OpenClaw and Hermes Agent. A small mint label pops up under the free tags reading Bring a model.
Paid plans against free and open source picks, prices from Anthropic's and OpenAI's pricing pages on 27 Oct 2026.
+

Which Claude Cowork alternative should you pick?

+

Start from what you want to hand off:

+
    +
  • One task at a time, no subscription, files on your machine: Hob.
  • +
  • A team of agents for research, writing, ops and code, on your own computer: Munder Difflin. See the install guide.
  • +
  • Cowork’s experience on OpenAI’s models: ChatGPT Work.
  • +
  • One open agent that works with any provider: Goose.
  • +
  • An assistant you message from your chat apps: OpenClaw. More picks in OpenClaw alternatives.
  • +
  • An agent that learns and lives on a server: Hermes Agent. More picks in Hermes Agent alternatives.
  • +
+

Still choosing between Anthropic’s own tools? Claude Cowork vs Claude Code compares them.

+ + + + +
+

FAQ

+ +
+

Is there a free alternative to Claude Cowork?

+

Yes. Hob, Munder Difflin, Goose, OpenClaw and Hermes Agent are free and open source. Hob runs open weight models on your own computer, so it needs no subscription at all; the others use a model you bring: a subscription you already pay for, an API key or a local model. Claude Cowork itself is on paid Claude plans only, from Pro at $20 a month billed monthly (27 Oct 2026).

+
+ +
+

Is there a Claude Cowork alternative that runs locally?

+

Hob is the most local: its Show HN post says the model runs on your own computer and the only parts that go online are web search, which you can turn off, and MCP connectors you add. Its docs add that it also goes online to download models and, with web access on, to install Python packages. Goose, Munder Difflin and OpenClaw also run on your computer and can work with local models.

+
+ +
+

What is the closest alternative to Claude Cowork from another big vendor?

+

ChatGPT Work. OpenAI's docs describe it as a way to delegate real work to ChatGPT: it uses your files, plugins and approved tools, and creates finished files you review. It is on ChatGPT Plus, Pro, Business and Enterprise, with Plus at $20 a month (27 Oct 2026).

+
+ +
+

Which Claude Cowork alternative gives me a team of agents?

+

Munder Difflin. It runs a team of AI agents for all kinds of knowledge work, coding included: research, writing, analysis, ops and code, each agent with its own role, with schedules and Slack. Cowork can split one task across Claude sub-agents, all on Claude models.

+
+ +
+ + + +
+ + +
+ + + + +
+ + +
+ +
+ + + + + + diff --git a/docs/blog/claude-cowork-vs-claude-code/index.html b/docs/blog/claude-cowork-vs-claude-code/index.html index 815dc856ee..164879500b 100644 --- a/docs/blog/claude-cowork-vs-claude-code/index.html +++ b/docs/blog/claude-cowork-vs-claude-code/index.html @@ -271,7 +271,7 @@

What can each one touch? Animation. A picket fence rises around three folders. A parcel slides in through the gate and lands inside, while a fourth folder outside the fence stays grey and untouched.
Cowork works only in the folders and tools you choose, per Anthropic's product page, 6 Oct 2026.

Can you use both?

Yes, and on one subscription. Pro lists Claude Code on the pricing page and Cowork on the help page, so you do not pay twice. Our view: plenty of people should use both, one for the spec and the spreadsheet, the other for the code.

-

If your work is code and you want more than one agent on it, that is a third kind of tool. Munder Difflin is free and open source: a desktop app that runs a team of coding agents such as Claude Code, Codex and Gemini CLI on your own computer. It does not run Cowork. Start with how to install and use Munder Difflin.

+

If you want more than one agent on the work, that is a third kind of tool. Munder Difflin is free and open source: a desktop app that runs a team of AI agents for all kinds of knowledge work, coding included, on your own computer. It does not run Cowork. Start with how to install and use Munder Difflin, or see Claude Cowork alternatives.

Claude Cowork vs OpenClaw: how do they differ?

Cowork is hosted and paid, OpenClaw is self-hosted and free. The OpenClaw README says it is MIT licensed and “has no paid tier, hosted service, or token”. It answers in chat apps: “Discord, iMessage, Slack, Teams, Telegram, WhatsApp, and 20+ more”. Models are plugins, and the README names Claude, Codex and local models.

The trade is control against convenience. OpenClaw’s README warns that “Tools run on the host for the main session unless you configure sandboxing”. Cowork runs in Anthropic’s isolated environment, on Anthropic’s terms and plans. GitHub showed OpenClaw release v2026.9.8, dated 3 Oct, when we checked on 6 Oct 2026. Its README says it was built for Molty, a space lobster AI assistant. See OpenClaw alternatives for more options.

@@ -347,50 +347,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-duet-alternatives/index.html b/docs/blog/claude-duet-alternatives/index.html index c7d542b36b..628248a36a 100644 --- a/docs/blog/claude-duet-alternatives/index.html +++ b/docs/blog/claude-duet-alternatives/index.html @@ -313,50 +313,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-duet-for-developers/index.html b/docs/blog/claude-duet-for-developers/index.html index 2c5e14c2a6..abd9f2ca06 100644 --- a/docs/blog/claude-duet-for-developers/index.html +++ b/docs/blog/claude-duet-for-developers/index.html @@ -264,50 +264,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-duet-vs-munder-difflin/index.html b/docs/blog/claude-duet-vs-munder-difflin/index.html index d3f1d7c298..f612790ade 100644 --- a/docs/blog/claude-duet-vs-munder-difflin/index.html +++ b/docs/blog/claude-duet-vs-munder-difflin/index.html @@ -310,50 +310,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-squad-alternative/index.html b/docs/blog/claude-squad-alternative/index.html index cb2e9a9bf7..77e54f5207 100644 --- a/docs/blog/claude-squad-alternative/index.html +++ b/docs/blog/claude-squad-alternative/index.html @@ -270,50 +270,50 @@

Which should you pick?
- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/claude-squad-vs-munder-difflin/index.html b/docs/blog/claude-squad-vs-munder-difflin/index.html index efbaddc6f0..d3c0c252cb 100644 --- a/docs/blog/claude-squad-vs-munder-difflin/index.html +++ b/docs/blog/claude-squad-vs-munder-difflin/index.html @@ -359,50 +359,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/cline-alternatives/index.html b/docs/blog/cline-alternatives/index.html index 64e29bd0be..861409092c 100644 --- a/docs/blog/cline-alternatives/index.html +++ b/docs/blog/cline-alternatives/index.html @@ -338,50 +338,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/cline-vs-munder-difflin/index.html b/docs/blog/cline-vs-munder-difflin/index.html index db4021d7b8..b0e43e328c 100644 --- a/docs/blog/cline-vs-munder-difflin/index.html +++ b/docs/blog/cline-vs-munder-difflin/index.html @@ -326,50 +326,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/codex-alternatives/index.html b/docs/blog/codex-alternatives/index.html index 513435365e..6e177e1a86 100644 --- a/docs/blog/codex-alternatives/index.html +++ b/docs/blog/codex-alternatives/index.html @@ -351,6 +351,22 @@

FAQ

Related in Comparisons

+ -
diff --git a/docs/blog/codex-cli-vs-claude-code/index.html b/docs/blog/codex-cli-vs-claude-code/index.html index 6969a2c675..93a2084bf7 100644 --- a/docs/blog/codex-cli-vs-claude-code/index.html +++ b/docs/blog/codex-cli-vs-claude-code/index.html @@ -407,50 +407,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/codex-vs-claude-code-usage-limits/index.html b/docs/blog/codex-vs-claude-code-usage-limits/index.html index 837302c873..f36b39bd7e 100644 --- a/docs/blog/codex-vs-claude-code-usage-limits/index.html +++ b/docs/blog/codex-vs-claude-code-usage-limits/index.html @@ -341,50 +341,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/codex-vs-cursor/index.html b/docs/blog/codex-vs-cursor/index.html index 67872d7170..cf717fa63d 100644 --- a/docs/blog/codex-vs-cursor/index.html +++ b/docs/blog/codex-vs-cursor/index.html @@ -347,50 +347,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/codex-vs-gemini-cli/index.html b/docs/blog/codex-vs-gemini-cli/index.html index 8c591970da..33c36ff722 100644 --- a/docs/blog/codex-vs-gemini-cli/index.html +++ b/docs/blog/codex-vs-gemini-cli/index.html @@ -331,50 +331,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/conductor-claude-code-alternative/index.html b/docs/blog/conductor-claude-code-alternative/index.html index fd93f0b634..5527d983f1 100644 --- a/docs/blog/conductor-claude-code-alternative/index.html +++ b/docs/blog/conductor-claude-code-alternative/index.html @@ -272,50 +272,50 @@

Conductor vs an orchest

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/crewai-autogen-vs-a-local-agent-harness/index.html b/docs/blog/crewai-autogen-vs-a-local-agent-harness/index.html index 42e302af39..65ba6aa190 100644 --- a/docs/blog/crewai-autogen-vs-a-local-agent-harness/index.html +++ b/docs/blog/crewai-autogen-vs-a-local-agent-harness/index.html @@ -296,50 +296,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/crystal-claude-code-alternative/index.html b/docs/blog/crystal-claude-code-alternative/index.html index ad3a4ad3d2..8672ac2af4 100644 --- a/docs/blog/crystal-claude-code-alternative/index.html +++ b/docs/blog/crystal-claude-code-alternative/index.html @@ -268,50 +268,50 @@

Crystal vs a memory-backe

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/cursor-alternatives/index.html b/docs/blog/cursor-alternatives/index.html index 8ac37005bb..2e372a5eca 100644 --- a/docs/blog/cursor-alternatives/index.html +++ b/docs/blog/cursor-alternatives/index.html @@ -367,50 +367,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/cursor-vs-cline/index.html b/docs/blog/cursor-vs-cline/index.html index d85e9cdd03..776bded78f 100644 --- a/docs/blog/cursor-vs-cline/index.html +++ b/docs/blog/cursor-vs-cline/index.html @@ -327,50 +327,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/feed.xml b/docs/blog/feed.xml index 2d4e0d4bc3..a8e5fb9137 100644 --- a/docs/blog/feed.xml +++ b/docs/blog/feed.xml @@ -7,6 +7,22 @@ 2026-10-27T00:00:00.000Z https://munderdiffl.in/blog/ Chaitanya Girihttps://munderdiffl.in + + Agent Tools Today, 27 Oct 2026: GPT-6.1 Terra, Hob, Anthropic's S-1 + + https://munderdiffl.in/blog/agent-tools-today-2026-10-27/ + 2026-10-27T00:00:00.000Z + 2026-10-27T00:00:00.000Z + The top launches, skills and MCP servers, multi agent moves, rising repos and arguments in AI agents from 26 to 27 Oct 2026, each with its source. + + + Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included + + https://munderdiffl.in/blog/claude-cowork-alternatives/ + 2026-10-27T00:00:00.000Z + 2026-10-27T00:00:00.000Z + Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026. + GPT-6.1 Terra: Price, Specs and How to Use It in Codex (Oct 2026) @@ -471,20 +487,4 @@ 2026-10-08T00:00:00.000Z The top launches, skills and plugins, multi agent moves, rising repos and arguments in coding agents on 8 Oct 2026, each with its source. - - Claude Code agent teams: what they are, how to use them - - https://munderdiffl.in/blog/claude-code-agent-teams/ - 2026-10-08T00:00:00.000Z - 2026-10-08T00:00:00.000Z - Claude Code agent teams, checked 8 Oct 2026: what they are, the experimental setting that turns them on, how they differ from subagents, token cost and limits. - - - Claude Haiku 5.5: price, benchmarks and where it fits - - https://munderdiffl.in/blog/claude-haiku-5-5/ - 2026-10-08T00:00:00.000Z - 2026-10-08T00:00:00.000Z - Claude Haiku 5.5 is Anthropic's new small model. Its tiered price, Anthropic's own scores and how to pick it in Claude Code, checked 8 Oct 2026. - diff --git a/docs/blog/gemini-4-argon-vs-claude-opus-5-5/index.html b/docs/blog/gemini-4-argon-vs-claude-opus-5-5/index.html index eb77f4a650..70be6597f9 100644 --- a/docs/blog/gemini-4-argon-vs-claude-opus-5-5/index.html +++ b/docs/blog/gemini-4-argon-vs-claude-opus-5-5/index.html @@ -452,50 +452,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/gemini-cli-vs-claude-code/index.html b/docs/blog/gemini-cli-vs-claude-code/index.html index 4676efa429..bbdafbdfd0 100644 --- a/docs/blog/gemini-cli-vs-claude-code/index.html +++ b/docs/blog/gemini-cli-vs-claude-code/index.html @@ -335,50 +335,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/github-copilot-cli-vs-claude-code-for-hive-work/index.html b/docs/blog/github-copilot-cli-vs-claude-code-for-hive-work/index.html index 4f755b5868..6ae6b5b3ac 100644 --- a/docs/blog/github-copilot-cli-vs-claude-code-for-hive-work/index.html +++ b/docs/blog/github-copilot-cli-vs-claude-code-for-hive-work/index.html @@ -397,50 +397,50 @@

FAQ

Related in Comparisons

- +
- + 5 min
-

Codex Alternatives: 7 Picks Beyond OpenAI's Agent (Oct 2026)

-

Seven Codex alternatives checked 26 Oct 2026: Claude Code, Munder Difflin, Copilot CLI, OpenCode, Goose, Cline and Cursor, with licences and prices.

+

Claude Cowork Alternatives: 6 AI Agents for Office Work, Free Picks Included

+

Claude Cowork needs a paid plan and runs in Anthropic's cloud. Six alternatives for office work, from free local apps to ChatGPT Work, checked 27 Oct 2026.

Comparisons - Read → + Read →
- +
- + - 5 min + 4 min
-

Open Source AI Agent Office Apps on GitHub (Oct 2026)

-

Open source AI agent office apps on GitHub, checked 23 Oct 2026: ChatDev, Munder Difflin, OpenHands, CrewAI, AG2 and three more, with licences.

+

Pi Agent Alternatives: 7 Coding Agents to Try (Oct 2026)

+

Seven Pi agent alternatives checked 26 Oct 2026: OpenCode, Munder Difflin, Claude Code, Codex CLI, Hermes Agent, Goose and Crush, with licences and prices.

Comparisons - Read → + Read →
diff --git a/docs/blog/gpt-6-1-terra/index.html b/docs/blog/gpt-6-1-terra/index.html index 8417454557..18c1be6102 100644 --- a/docs/blog/gpt-6-1-terra/index.html +++ b/docs/blog/gpt-6-1-terra/index.html @@ -378,7 +378,7 @@

FAQ