New:Microsoft Teams Notifications Are Now Available in Socket.Learn more →
Get Started

upfyn-agents

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

upfyn-agents

Upfyn Agents — Terminal task board for managing AI coding agent sessions

latest
Source
npmnpm
Version
1.2.1
Version published
Maintainers
1
Created
Source

Upfyn Agents

A terminal-native task board for managing multiple AI coding agent sessions with isolated git worktrees.

Manage Claude Code, Aider, Codex, GitHub Copilot, and more — all from one unified terminal interface.

How It Works

┌─────────────────────────────────────────────────────────────────────┐
│                        UPFYN AGENTS  my-project                     │
├──────────┬───────────┬───────────┬───────────┬──────────────────────┤
│ BACKLOG  │ PLANNING  │  RUNNING  │  REVIEW   │  DONE               │
│ ───────  │ ────────  │  ───────  │  ──────   │  ────               │
│          │           │           │           │                      │
│ > Auth   │  Refactor │  Fix bug  │  Add API  │  Setup CI           │
│   [claude│  [claude] │  [aider]  │  [claude] │  [claude]           │
│          │           │           │  PR #42   │                      │
│  Caching │           │           │           │                      │
│  [aider] │           │           │           │                      │
│          │           │           │           │                      │
├──────────┴───────────┴───────────┴───────────┴──────────────────────┤
│ [o] new [/] search [m] move [d] diff [s] sessions [S] SVG [q] quit │
└─────────────────────────────────────────────────────────────────────┘

Each task flows through five stages. When a task moves to Planning, Upfyn automatically creates an isolated git worktree and spawns your chosen AI agent inside a dedicated tmux session:

┌─────────────────────────────────────────────────────────────────────┐
│                      Upfyn Agents TUI                               │
├─────────────────────────────────────────────────────────────────────┤
│  Backlog  │  Planning  │  Running  │  Review  │  Done               │
│  ┌─────┐  │  ┌─────┐   │  ┌─────┐  │  ┌─────┐ │                    │
│  │Task1│  │  │Task2│   │  │Task3│  │  │Task4│ │                    │
│  └─────┘  │  └─────┘   │  └─────┘  │  └─────┘ │                    │
└───────────┴────────────┴──────┬────┴──────┬───┴────────────────────┘
                    │           │           │
                    ▼           ▼           ▼
┌─────────────────────────────────────────────────────────────────────┐
│                    tmux server "upfyn"                               │
│  ┌────────────────────────────────────────────────────────────────┐ │
│  │ Session: task-a1b2c3d4--my-project--refactor-auth              │ │
│  │  ┌──────────────────────────────────────┐                      │ │
│  │  │  claude --dangerously-skip-perms ... │                      │ │
│  │  │  > Planning implementation...        │                      │ │
│  │  └──────────────────────────────────────┘                      │ │
│  ├────────────────────────────────────────────────────────────────┤ │
│  │ Session: task-e5f6g7h8--my-project--fix-bug                    │ │
│  │  ┌──────────────────────────────────────┐                      │ │
│  │  │  aider --message "Fix the login..." │                      │ │
│  │  │  > Implementing fix...               │                      │ │
│  │  └──────────────────────────────────────┘                      │ │
│  └────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
                    │           │
                    ▼           ▼
┌─────────────────────────────────────────────────────────────────────┐
│                    Git Worktrees                                     │
│                                                                      │
│  .upfyn/worktrees/refactor-auth/    ← branch: task/refactor-auth    │
│  .upfyn/worktrees/fix-bug/          ← branch: task/fix-bug          │
│  .upfyn/worktrees/add-api/          ← branch: task/add-api          │
│                                                                      │
│  Each worktree = isolated copy of the repo for parallel work         │
└─────────────────────────────────────────────────────────────────────┘

Task Workflow

  ┌─────────┐    ┌──────────┐    ┌─────────┐    ┌────────┐    ┌──────┐
  │ BACKLOG │───>│ PLANNING │───>│ RUNNING │───>│ REVIEW │───>│ DONE │
  └─────────┘    └──────────┘    └─────────┘    └────────┘    └──────┘
                      │              │              │              │
                 Create worktree  Agent is      Optional PR    Cleanup
                 Spawn agent     implementing   Push + PR      worktree
                 in planning     (auto-sent     Can resume     Keep branch
                 mode            "proceed")     from here
  • Backlog — Ideas and upcoming tasks. Edit title/description here.
  • Planning — Worktree created, agent spawned in planning mode. Agent analyzes the codebase and creates a plan.
  • Running — Agent is implementing. Upfyn sends "proceed with implementation" automatically.
  • Review — Work done. Optionally create a PR via gh. Resume to address feedback.
  • Done — Worktree cleaned up, tmux session killed. Branch preserved locally.

Canvas View

Press c to switch to the canvas — a spatial view of all tasks with connections:

┌─────────────────────────────────────────────────────────────────────┐
│ CANVAS [c]Board [a]Connect [+/-]Zoom [S]SVG                        │
│                                                                      │
│   ┌──────────────────────┐          ┌──────────────────────┐        │
│   │ Setup Database       │─────────>│ Add API Endpoints    │        │
│   │ [done] claude        │          │ [running] claude     │        │
│   └──────────────────────┘          └──────────────────────┘        │
│                                              │                       │
│                                              │ "after API"           │
│                                              ▼                       │
│   ┌──────────────────────┐          ┌──────────────────────┐        │
│   │ Write Tests          │<─────────│ Frontend Integration │        │
│   │ [backlog] aider      │          │ [planning] claude    │        │
│   └──────────────────────┘          └──────────────────────┘        │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘
  • Navigate nodes with h/j/k/l, move them with H/J/K/L
  • Draw connections with a (connect mode)
  • Export the entire strategy to SVG with S

SVG Export

Press S from either view to export a publication-ready SVG of your task board or canvas:

Board view → upfyn-board-{timestamp}.svg    (columns + cards)
Canvas view → upfyn-canvas-{timestamp}.svg  (nodes + arrows)

SVGs include full color theming, status badges, agent labels, and connection arrows.

Session Management

Press s to view all active agent sessions:

┌──────────────────────────────────────────────────────┐
│ Agent Sessions                                        │
│                                                       │
│ Active sessions on tmux server "upfyn":               │
│                                                       │
│   task-a1b2c3d4--my-project--refactor-auth            │
│     Created: 12m ago                                  │
│                                                       │
│   task-e5f6g7h8--my-project--fix-bug                  │
│     Created: 45m ago                                  │
│                                                       │
│ Attach: tmux -L upfyn attach -t <session>             │
│ View:   tmux -L upfyn list-sessions                   │
└──────────────────────────────────────────────────────┘

Open any task's live session with Enter to see the agent's output in real-time:

┌──────────────────────────────────────────────────────┐
│ Fix authentication bug                   [Ctrl+q]    │
│                                                       │
│ claude> I'll fix the authentication bug by updating   │
│ the token validation logic in auth.js...              │
│                                                       │
│ Changes made:                                         │
│   src/auth.js - Fixed token expiry check              │
│   src/middleware.js - Added refresh logic              │
│                                                       │
│ Ready for review.                                     │
│                                                       │
│ [Ctrl+j/k] Scroll  [Ctrl+d/u] Page  [Ctrl+g] Bottom  │
└──────────────────────────────────────────────────────┘

Quick Start

Prerequisites

  • tmux — Agent sessions run in a dedicated tmux server
  • git — Worktree isolation for parallel development
  • gh (optional) — GitHub CLI for PR operations
  • At least one AI coding agent (Claude Code, Aider, Codex, etc.)

Install & Run

# Install
npm install

# Run in a git project directory
node src/index.js .

# Or use the binary after npm link
npx upfyn

# Dashboard mode (multi-project, no git required)
npx upfyn -g

Configuration

Global config at ~/.config/upfyn-agents/config.toml (Linux) or %APPDATA%/upfyn-agents/config.toml (Windows):

default_agent = "claude"

[worktree]
enabled = true
auto_cleanup = true
base_branch = "main"

[theme]
color_selected = "#ead49a"
color_normal = "#5cfff7"
color_dimmed = "#9C9991"
color_text = "#f2ece6"
color_accent = "#5cfff7"
color_description = "#C4B0AC"
color_column_header = "#a0d2fa"
color_popup_border = "#9ffcf8"
color_popup_header = "#69fae7"

Per-project config at <project>/.upfyn/config.toml:

default_agent = "aider"
base_branch = "develop"
github_url = "https://github.com/org/repo"
copy_files = ".env,config.json"
init_script = "npm install"

Keyboard Reference

Board View

KeyAction
h / lMove between columns
j / kMove between tasks
oCreate new task
EnterOpen task session / edit backlog task
xDelete task (with confirmation)
dShow git diff for task branch
mMove task to next stage
MMove directly to Running (skip Planning)
rResume task (Review back to Running)
/Search tasks by title
sView active agent sessions
SExport current view to SVG
cSwitch to canvas view
eToggle project sidebar
qQuit

Canvas View

KeyAction
h / j / k / lSelect nodes by direction
H / J / K / LMove selected node
aStart connection (draw arrow)
xDelete connection from selected node
+ / -Zoom in / out
pHTML preview of selected node
bOpen HTML content in browser
SExport canvas to SVG
c / EscBack to board view

Task Session Popup

KeyAction
Ctrl+j / Ctrl+kScroll up/down
Ctrl+d / Ctrl+uPage down/up
Ctrl+gJump to bottom
Ctrl+q / EscClose popup
Other keysForwarded to the agent session

PR Creation

KeyAction
TabSwitch between title and description
Ctrl+sPush branch + create PR
EscCancel

Task Description Input

KeyAction
# / @Open file search (fuzzy find project files)
EnterSave and create task
EscCancel

Supported Agents

Detected automatically in order of preference:

AgentCommandDescription
Claude CodeclaudeAnthropic's Claude Code CLI
AideraiderAI pair programming in your terminal
CodexcodexOpenAI's Codex CLI
GitHub Copilotgh copilotGitHub Copilot CLI
OpenCodeopencodeAI-powered coding assistant
ClineclineAI coding assistant
Amazon QqAmazon Q Developer CLI

Architecture

src/
├── index.js              # Entry point, CLI arg parsing
├── app.js                # Main App class — rendering, key handling, actions
├── db/
│   ├── models.js         # Task, Project, TaskConnection data structures
│   └── database.js       # SQLite operations (CRUD, schema, migrations)
├── config/
│   └── config.js         # Global + per-project TOML configuration
├── agent/
│   └── agent.js          # Agent registry, detection, command building
├── git/
│   ├── git.js            # Git helpers (branch, diff, merge)
│   ├── worktree.js       # Worktree lifecycle (create, init, remove)
│   └── provider.js       # GitHub PR operations via gh CLI
├── tmux/
│   └── tmux.js           # Session management (spawn, capture, kill)
├── tui/
│   ├── board.js          # Board navigation state
│   ├── canvas.js         # Canvas state (nodes, zoom, pan, connections)
│   ├── html-preview.js   # HTML preview (terminal + browser)
│   ├── sidebar.js        # Project sidebar state
│   ├── popups.js         # All popup state classes
│   └── theme.js          # Hex color utilities
└── utils/
    ├── mermaid.js         # Mermaid diagram parser
    └── svg-export.js      # SVG export (board + canvas views)

Database

All data stored centrally — never inside your project directories:

PlatformLocation
Linux~/.config/upfyn-agents/
macOS~/Library/Application Support/upfyn-agents/
Windows%APPDATA%/upfyn-agents/
  • index.db — Global project index
  • projects/{hash}.db — Per-project task database

License

GNU General Public License v3.0 — see LICENSE for details.

Keywords

claude-code

FAQs

Package last updated on 23 Feb 2026

Related posts