Flue: A TypeScript Framework for Building Autonomous Coding Agents

Flue is a TypeScript framework for building autonomous agents using a programmable harness architecture — the same pattern behind Claude Code and Codex. It lets you define agents that plan, gather context, write files, spawn subagents, and run shell commands, all within a sandboxed environment.
Key Features
- Agent Harness: Combines a model (e.g., Anthropic Claude Sonnet 4-6) with a harness for tools like filesystem read/write, grep, glob, bash execution, and network access.
- Sessions: Persistent contexts for tracking work, similar to Claude Code or Codex sessions.
- Skills: Reusable workflows with structured output using Valibot for runtime validation.
- Sandbox: Built-in zero-config virtual sandbox, or connect your own remote sandbox. Fine-grained control over environment variables and token exposure.
- Deployment: Agents bundle into an HTTP server for remote use, or run via CLI (
flue run) for local tasks and CI.
Example: AI Issue Triage in 22 Lines
import type { FlueContext } from '@flue/sdk/client';
import { Octokit } from '@octokit/core';
import * as v from 'valibot';
export default async function ({ init, payload, env }: FlueContext) {
const { issueNumber } = payload;
const agent = await init({ model: 'anthropic/claude-opus-4-7' });
const session = await agent.session();
const triage = await session.skill('triage', {
args: { issueNumber },
result: v.object({
severity: v.picklist(['low', 'medium', 'high', 'critical']),
reproducible: v.boolean(),
summary: v.string(),
}),
});
const body = **Severity:** ${triage.severity}\n**Reproducible:** ${triage.reproducible}\n\n${triage.summary};
await (new Octokit({ auth: env.GITHUB_TOKEN })).request(
'POST /repos/{owner}/{repo}/issues/{num}/comments',
{ owner: 'withastro', repo: 'flue', num: issueNumber, body },
);
}
Who It's For
Developers building custom AI agents for code review, issue triage, data analysis, customer support, or coding automation who want full control over the agent stack without renting a third-party tool.
📖 Read the full source: HN LLM Tools
👀 See Also

Bridge Claude Code to Chat Apps for Remote Interaction
A GitHub project called cc-connect bridges Claude Code to messaging platforms like Slack and Telegram, allowing remote interaction without exposing your local machine. The agent runs locally while a small bridge relays messages between the agent and chat apps.
Tendril: A self-extending agent that builds and registers tools on the fly
Tendril is an agentic sandbox that autonomously discovers, builds, and registers tools. It starts with just three bootstrap tools and dynamically grows its capability registry without asking the user.

Microsoft Teams SDK Adds HTTP Server Adapter for Existing AI Agents
The Microsoft Teams SDK now includes an HTTP server adapter that lets developers connect existing AI agents to Teams without rewriting their code. It works with LangChain chains, Slack bots, and Azure Foundry deployments by injecting a POST /api/messages endpoint into existing Express servers.

DecisionNode: CLI and MCP Server for Semantic Decision Storage
DecisionNode is a local-only CLI and MCP server that stores structured decisions as JSON, embeds them as vectors for semantic search, and makes them accessible across AI tools via MCP. It's MIT licensed and designed to work with Claude Code, Cursor, Windsurf, Antigravity, and other MCP clients.