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

ClaudeMeter: Open-Source macOS Menu Bar App for Real-Time Claude Usage Tracking
ClaudeMeter is a free, open-source macOS menu bar app for Claude Max subscribers that displays session and weekly usage percentages, reset timers, and pace indicators without interrupting workflow. The entire app was built using Claude (Claude Code/Opus) for Swift code, Supabase backend, and Edge Functions.

Local Memory System for AI Coding Tools Extracts 2,600+ Facts from Conversation Logs
A developer built a local memory layer that ingests conversation logs from Claude Code, Factory.ai, and Codex CLI, extracts structured facts using a local LLM, and auto-injects context into new sessions. After months of use, it has indexed 13,000+ messages and extracted 2,600+ facts.

Axe: A 12MB CLI for Single-Purpose LLM Agents
Axe is a lightweight Go binary that runs focused AI agents defined in TOML files. It treats agents like Unix programs, supporting stdin piping, sub-agent delegation, and multi-provider LLM integration.

Agent frameworks waste 350,000+ tokens per session resending static files
A benchmark on a local Qwen 3.5 122B setup revealed agent frameworks waste over 350,000 tokens per session by resending static files. A compile-time approach reduced query context from 1,373 tokens to 73, achieving a 95% reduction.