Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

u-foo

Package Overview
Dependencies
Maintainers
1
Versions
104
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

u-foo

Multi-Agent Workspace Protocol. Just add u. claude → uclaude, codex → ucodex.

latest
npmnpm
Version
2.5.1
Version published
Weekly downloads
1.2K
-26.93%
Maintainers
1
Weekly downloads
 
Created
Source

ufoo

中文

ufoo is a project-scoped multi-agent workspace runtime. It wraps Claude Code, OpenAI Codex, Antigravity, and ufoo's native ucode agent with a shared chat dashboard, daemon, event bus, memory, reports, group orchestration, and terminal launch modes.

Package: u-foo on npm

npm version npm downloads License Node Platform

Highlights

  • One TUI dashboard for launching, watching, messaging, and resuming agents.
  • Project daemon over .ufoo/run/ufoo.sock for launch/resume, reports, groups, cron, and controller routing.
  • Project-local event bus for agent-to-agent messages, wakeups, queue checks, and activation.
  • Shared context primitives: decisions, durable memory, prompt history, reports, and agent registry state.
  • Launch modes for internal, tmux, host, Terminal.app, and iTerm2 workflows.
  • Built-in group templates for launching and orchestrating multi-agent workflows.
  • ucode, a native ufoo coding-agent runtime.
  • ufoo mcp, a local global MCP bridge for external MCP-capable agents.

Requirements

  • Node.js 18 or newer.
  • macOS for Terminal.app/iTerm2 integration.
  • Claude Code, Codex CLI, or Antigravity CLI installed when using the matching wrappers: uclaude, ucodex, or uagy.

Installation

Install the published package:

npm install -g u-foo

Or link this repository for local development:

git clone https://github.com/Icyoung/ufoo.git
cd ufoo
npm install
npm link

Installed binaries:

BinaryPurpose
ufooMain CLI, chat dashboard, daemon, local global MCP bridge, groups, bus, context, memory, reports, and online helpers.
uclaudeClaude Code wrapper with ufoo bootstrap and bus identity.
ucodexCodex wrapper with ufoo bootstrap and bus identity.
uagyAntigravity wrapper with ufoo bootstrap and bus identity.
ucodeNative ufoo coding-agent CLI/TUI.

Quick Start

Initialize a project and open the chat dashboard:

cd your-project
ufoo init --targets context,bus
ufoo

Launch agents from chat:

> /launch codex reviewer
> /launch claude builder
> /launch ucode fixer
> @reviewer inspect the current diff and list release risks

Or launch wrappers directly inside a project:

uclaude
ucodex
uagy
ucode

Use global chat mode to switch between registered projects:

ufoo -g

For MCP-capable clients, configure the global stdio bridge once:

ufoo mcp

The MCP bridge connects to the home-scoped global controller daemon and routes project-scoped tools through the global project registry. It is not a separate per-project MCP server mode.

Runtime Model

ufoo / ufoo chat
  -> src/app/chat + src/ui/ink
  -> project daemon over .ufoo/run/ufoo.sock
  -> runtime daemon launch/resume/recover/reports/cron/groups
  -> orchestration router, group templates, solo roles
  -> agents launch/providers/internal/controller/activity
  -> coordination bus/context/memory/history/report/state/status
  -> shared controller/worker tools and native ucode tools

ufoo mcp
  -> home-scoped global controller daemon
  -> ~/.ufoo/projects/runtime
  -> selected project daemon for bus/report/activity state

Chat is a UI client. The daemon owns project runtime state. Agents communicate through bus queues, prompt injection, shared memory, reports, and tool handlers instead of importing chat UI code.

Daily Usage

The normal workflow is to enter chat first, then launch agents and run project commands inside the dashboard:

ufoo
ufoo -g

ufoo opens the current project chat. ufoo -g opens global chat for switching between registered projects. The project daemon is started as needed.

Chat Commands

/launch codex reviewer
/launch claude builder
/launch ucode fixer
@reviewer inspect the current diff and list release risks

/status
/settings
/multi
/resume list
/project list
/project switch 2
/open /path/to/project

Direct wrapper commands such as uclaude, ucodex, uagy, and ucode are still available, but the normal ufoo workflow is to work from chat.

Initialization And Maintenance

These are setup or troubleshooting commands. In chat, use slash commands:

/init context bus
/doctor
/status
/daemon status
/daemon restart
/daemon stop
/daemon start

ufoo init creates .ufoo/, ensures AGENTS.md and CLAUDE.md, initializes selected workspace state, and prepares shared storage. CLAUDE.md may be a symlink; edit project instructions in AGENTS.md.

Before a project has been initialized, the equivalent CLI form is also useful: ufoo init --targets context,bus.

Event Bus

/bus list
/bus status
/bus send codex:abc123 Please implement the approved slice.
/bus activate reviewer
/bus rename codex:abc123 reviewer

Use /bus status to find the real subscriber ID or resolvable nickname before sending. Agents should handle pending work, reply to the sender, and acknowledge their queue.

Context, Memory, History, Reports

Inside chat:

/ctx status
/ctx doctor
/ctx decisions

Memory, history, and report management are CLI utilities:

ufoo memory add "Provider contract" --body "Durable fact..." --tags provider,contract
ufoo memory list --tag provider
ufoo memory show mem-0001

ufoo history build
ufoo history show 20
ufoo history prompt 30

ufoo report start "Implement README refresh" --task docs-readme --agent builder
ufoo report done "README updated" --task docs-readme --agent builder
ufoo report list

Use decisions only for plan-level constraints. Durable project facts belong in memory.

Groups

Built-in group templates live in templates/groups/.

/group templates
/group template show build-lane
/group template validate templates/groups/build-lane.json
/group run build-lane dry_run=true
/group run build-lane instance=docs-refresh
/group status
/group diagram build-lane mermaid
/group stop docs-refresh

Online Relay

ufoo online server --host 127.0.0.1 --port 8787
ufoo online token codex:abc123 --nickname builder
ufoo online room create --nickname builder --name review-room --type private --password secret
ufoo online connect --nickname builder --room <room_id> --room-password secret
ufoo online send --nickname builder --room <room_id> --text "handoff ready"
ufoo online inbox builder --unread

The default public service URL is https://online.ufoo.dev. Local development can run its own relay with ufoo online server.

Native ucode Runtime

ufoo ucode doctor
ufoo ucode prepare
ufoo ucode build

ucode can discover built-in and local SKILL.md workflow capabilities. Full skill bodies are loaded only when explicitly referenced.

Configuration

Project configuration is stored in .ufoo/config.json. ucode provider credentials are stored globally in ~/.ufoo/config.json and merged at load time.

Common project settings:

{
  "launchMode": "auto",
  "agentProvider": "codex-cli",
  "controllerMode": "main",
  "codexInternalThreadMode": "api",
  "codexAuthPath": "",
  "codexOauthRefreshWindowSec": 300,
  "claudeOauthProfile": "",
  "claudeOauthTokenPath": "",
  "claudeOauthRefreshWindowSec": 300,
  "routerProvider": "",
  "routerModel": "",
  "agentModel": "",
  "autoResume": true
}

Supported launchMode values: auto, internal, tmux, terminal, and host. controllerMode accepts main, shadow, loop, and legacy compatibility values.

Global ucode settings:

{
  "ucodeProvider": "openai",
  "ucodeModel": "gpt-4.1",
  "ucodeBaseUrl": "https://api.openai.com/v1",
  "ucodeApiKey": "sk-...",
  "ucodeAgentDir": ""
}

Source Layout

src/
  app/            chat client state and CLI command entry
  ui/             Ink components and pure formatting helpers
  runtime/        daemon, projects, terminal adapters, contracts, privacy, process helpers
  coordination/   bus, context, memory, history, reports, state, status
  orchestration/  router/controller logic, groups, solo roles
  agents/         launchers, providers, prompts, internal runner, activity, controller
  code/           native ucode runtime, launcher, skills, file/shell tools
  tools/          shared controller/worker tool registry and handlers
  online/         relay client/server/runner/token helpers

See PROJECT.md for the maintainer-facing map and detailed package ownership.

Development

npm install
npm link
node bin/ufoo.js --help
npm test

Useful checks:

npm run test:watch
npm run test:coverage

The repository is CommonJS, targets Node.js 18+, and has no build step.

Release

Use the standard npm flow from a clean worktree:

npm test
npm pack --dry-run
npm version patch
npm publish --access public
git push --follow-tags

npm pack --dry-run should be used to verify the final tarball. Publishing requires an npm account/token with permission for u-foo.

Troubleshooting

Run a local entry directly if the linked binary is not on PATH:

node bin/ufoo.js --help

If Codex cannot write under its default home, point it at a project-local directory before launching chat or agents:

export CODEX_HOME="$PWD/.ufoo/codex"
ufoo

For Codex-friendly notifications, prefer bus helpers over raw terminal text injection:

ufoo bus alert codex:abc123 --daemon
ufoo bus listen codex:abc123

License

UNLICENSED. See LICENSE.

Keywords

cli

FAQs

Package last updated on 31 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts