SubFrame

skill
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Basarisiz
  • exec() — Shell command execution in .githooks/update-structure.js
  • process.env — Environment variable access in .githooks/update-structure.js
  • fs module — File system access in .githooks/update-structure.js
Permissions Gecti
  • Permissions — No dangerous permissions requested
Purpose
This tool is a terminal-centric desktop IDE designed to enhance AI-powered command-line coding assistants like Claude Code, Codex CLI, and Gemini CLI. It provides a structured workspace featuring persistent context, task tracking, and a multi-terminal environment.

Security Assessment
The overall security risk is rated as Medium. A scan failure was triggered by shell command execution found within a git hook script (`update-structure.js`). This same file reads environment variables and accesses the file system. While this behavior is relatively standard for development scripts that update local repository structures, users should still inspect the script's contents before running local git hooks. No hardcoded secrets were detected, and the application does not request any inherently dangerous system permissions.

Quality Assessment
This project is an early-stage, actively developed application. It uses the permissive MIT license and its repository was updated very recently. The codebase is built with modern technologies including TypeScript, React, and Electron. However, community trust and visibility are currently very low, as it only has 5 GitHub stars. Users should expect a "beta" experience with potential bugs, as explicitly noted by the developer.

Verdict
Use with caution. The project is legitimate and actively maintained, but you should review the development scripts for shell execution before fully trusting this early-stage tool.
SUMMARY

SubFrame - A terminal first project management IDE for Claude Code, Codex CLI, and Gemini CLI

README.md

SubFrame

SubFrame

Terminal-centric IDE for AI-assisted development
Enhances your AI coding tools — never replaces them

CI Beta Version License

TypeScript React Electron Windows (stable) macOS (beta) Linux (beta)

Install · Features · Development · Website · Docs


This project is under active development and in public beta. We're looking for early adopters to test, break things, and help shape the direction of SubFrame. If you run into issues or have ideas, open an issue — every report helps.

https://github.com/user-attachments/assets/37aee249-7ec8-4915-80aa-b0b3baf9e8df

A lightweight desktop IDE for Claude Code, Codex CLI, and Gemini CLI — terminal-based AI coding assistants that let you chat with AI in your terminal while it writes, edits, and reviews code for you. SubFrame wraps these tools in a structured workspace — persistent context, task tracking, codebase mapping, and a multi-terminal environment — so nothing gets lost between sessions.

Platform support: Windows (stable) · macOS & Linux (beta — testers wanted). See Installation for platform-specific prerequisites.

Screenshots

SubFrame terminal workspace with Claude Code session

Multi-terminal workspace with Claude Code — full PTY, syntax highlighting, and status bar

SubFrame project overview dashboard

Project overview — stats, structure, active tasks, recent files, and health status at a glance

SubFrame task management panel alongside terminal

Task panel with agent activity — manage sub-tasks while coding in the terminal

SubFrame builds upon Frame by @kaanozhan, extended with React 19, TypeScript, and a modernized architecture.

Why SubFrame?

VS Code Cursor Warp SubFrame
Terminal-first No No Yes Yes
AI tool agnostic No No No Yes (Claude, Codex, Gemini)
Project context Extensions Built-in Limited Built-in (tasks, sessions, overview)
Open source Partial No No MIT

As AI-assisted projects grow, context gets lost between sessions. Decisions are forgotten, tasks slip through the cracks, and you re-explain the same things over and over.

SubFrame solves this with a standardized project layer that your AI tools read automatically at session start — tasks, codebase structure, session notes, and architecture decisions all carry forward. A single Initialize Workspace command sets up everything your AI tools need, so every session starts with full context instead of a blank slate.

The core principle: augment, don't replace. Claude Code, Gemini CLI, and Codex CLI work exactly as they normally would. SubFrame layers structure on top — persistent context, task management, and a unified workspace — making each tool more effective without changing how any of them behaves.

Features

Initialize Workspace

The entry point to SubFrame. Run subframe init from the CLI or click the Initialize button in the GUI. One command creates a standardized project layer that AI tools pick up automatically:

.subframe/
  config.json               # Project configuration
  STRUCTURE.json             # Codebase module map (auto-updates on commit)
  PROJECT_NOTES.md           # Session notes and decisions
  tasks.json                 # Sub-Task index (auto-generated)
  tasks/                     # Individual task markdown files
  QUICKSTART.md              # Getting started guide
  docs-internal/             # ADRs, architecture, changelog, IPC reference
  bin/codex                  # Codex CLI wrapper script
AGENTS.md                    # AI instructions (tool-agnostic)
CLAUDE.md                    # Backlink to AGENTS.md (Claude Code reads natively)
GEMINI.md                    # Backlink to AGENTS.md (Gemini CLI reads natively)
.githooks/pre-commit         # Auto-updates STRUCTURE.json on commit
.claude/
  settings.json              # Hook wiring configuration
  skills/                    # Slash command skills

Existing user content in CLAUDE.md and GEMINI.md is preserved — SubFrame only adds a small backlink reference.

Hooks and Automation

SubFrame installs hooks that automate context awareness throughout your workflow:

  • SessionStart — Injects pending/in-progress sub-tasks into context at startup, resume, and after compaction
  • UserPromptSubmit — Fuzzy-matches user prompts against pending sub-task titles and suggests starting them
  • Stop — Reminds about in-progress sub-tasks when Claude finishes responding
  • PreToolUse / PostToolUse — Monitor agent tool usage for the Agent Timeline
  • Git pre-commit — Auto-updates STRUCTURE.json before each commit

Skills (Slash Commands)

SubFrame installs Claude Code skills as slash commands:

Command Description
/sub-tasks View and manage sub-tasks (list, start, complete, add, archive)
/sub-audit Run code review and documentation audit on recent changes
/sub-docs Sync all SubFrame documentation after feature work
/sub-ipc Regenerate IPC channel reference documentation
/release Version bump, changelog, release notes, commit, and tag

Sub-Task System

Markdown-based task tracking stored in .subframe/tasks/ with YAML frontmatter. Each task captures the original user request, acceptance criteria, and session context.

  • CLI managementnode scripts/task.js list|start|complete|add|update|archive
  • Visual task panel — Table view with status filters, priority sorting, inline expand
  • Multiple views — Table, dependency graph, and kanban board
  • Lifecyclependingin_progresscompleted
  • Auto-detected — Hooks recognize task-like requests from conversation and suggest creating them

IDE Workspace

  • 3-Panel Layout — File explorer, multi-terminal center, contextual side panels
  • Multi-Terminal — Up to 9 terminals with tabs or grid view (2x1 through 3x3), resizable cells, pop-out windows for multi-monitor workflows
  • File Editor — CodeMirror 6 with syntax highlighting for 15+ languages, find/replace, go-to-line, code folding, overlay or tab mode
  • Real PTY — Full pseudo-terminal via node-pty, not subprocess pipes
  • File Previews — Inline preview for Markdown, HTML, and images
  • Activity Streams — VS Code-style bottom bar showing real-time progress of background operations (analysis, pipelines, tasks)

Context Preservation

Every session starts informed instead of cold:

  • PROJECT_NOTES.md — Captures architecture decisions, technology choices, and approach changes as they happen
  • STRUCTURE.json — Maps modules, exports, dependencies, and function locations across the codebase
  • tasks.json — Tracks work with original user requests and acceptance criteria preserved
  • Auto-loaded — AI reads all three at the start of each session, surviving context compaction

Health and Audit Panel

Per-component health status for the entire SubFrame installation, grouped by category (Core, Hooks, Skills, Claude Integration, Git):

  • Status badges — Healthy, Outdated, or Missing for each component
  • One-click updates — "Update All" to fix outdated components, or update individually
  • Granular uninstall — Checkboxes to selectively remove hooks, skills, backlinks, AGENTS.md, or the .subframe/ directory
  • Dry run preview — See what would change before committing to an uninstall

Agent Activity Monitor

Real-time visibility into Claude Code agent sessions:

  • Session status — Active, busy, idle, or completed with live status badges
  • Tool tracking — Displays the current tool being used and total step count
  • Timeline view — Chronological view of all agent steps with tool usage details
  • Session list — Browse and review past agent sessions in full-view mode

AI Tool Integration

  • Multi-Tool Support — Switch between Claude Code, Codex CLI, and Gemini CLI from the toolbar
  • Native Context Injection — Claude reads CLAUDE.md, Gemini reads GEMINI.md, Codex uses a wrapper script that injects AGENTS.md
  • Sessions Panel — Browse past Claude Code sessions with conversation history
  • Usage Tracking — Monitor Claude Code session counts and weekly usage statistics
  • AI Files Panel — View and manage context files (AGENTS.md, CLAUDE.md, GEMINI.md) from the UI

Git and GitHub

  • Branch Management — View, switch, create, and delete branches
  • Sync Status — Ahead/behind counts, working tree state, auto-fetch with configurable interval
  • GitHub Issues — Browse repository issues directly from the sidebar

CLI Integration

  • subframe init — Initialize a SubFrame workspace in the current directory
  • subframe edit <file> — Open a file in the editor from the command line
  • subframe open <dir> — Open a directory as a project
  • Single-instance — CLI commands forward to the running instance instead of opening a new window

Other

  • Overview Dashboard — Project metrics, module counts, task summaries, health status, and recent file activity at a glance
  • Plugin System — Extend SubFrame with plugins
  • Structure Map — Interactive D3.js force-directed graph of module dependencies, color-coded by process layer
  • Theme System — 4 built-in presets (Classic Amber, Synthwave Traces, Midnight Purple, Terminal Green) with custom theme support, color pickers, and feature toggles (neon traces, scanlines, logo glow)
  • Settings Panel — Configure appearance, terminal, editor, AI tools, and updater preferences
  • Keyboard Shortcuts — Full keyboard navigation:
Shortcut Action
Ctrl+B Toggle sidebar
Ctrl+Shift+T New terminal
Ctrl+Shift+W Close terminal
Ctrl+1-9 Jump to terminal
Ctrl+Shift+G Toggle grid view
Ctrl+Shift+S Sub-Tasks panel
Ctrl+Shift+A Agent Activity panel
Ctrl+, Settings
Ctrl+? Show all shortcuts

SubFrame Project System

Initializing a workspace creates a standard set of files your AI tools read automatically:

File Purpose
AGENTS.md AI-agnostic instructions — native tool files (CLAUDE.md, GEMINI.md) backlink here
.subframe/STRUCTURE.json Machine-readable module map (exports, dependencies, function locations)
.subframe/tasks/ Individual task markdown files with YAML frontmatter
.subframe/tasks.json Auto-generated task index for backward-compatible access
.subframe/PROJECT_NOTES.md Session notes and decisions preserved verbatim
.subframe/config.json Project-level configuration
.subframe/docs-internal/ ADRs, architecture overview, changelog, IPC channel reference
.subframe/QUICKSTART.md Getting started guide
.claude/settings.json Hook wiring configuration
.claude/skills/ Slash command skills (sub-tasks, sub-audit, sub-docs, sub-ipc, release)
.githooks/pre-commit Auto-updates STRUCTURE.json before each commit

Tech Stack

Component Technology
Framework Electron 28
Renderer React 19 · TypeScript (strict)
State Zustand · TanStack Query
UI shadcn/ui · Tailwind CSS v4
Animations Framer Motion
Editor CodeMirror 6
Terminal xterm.js 5.3
PTY node-pty 1.0
Bundler esbuild

Installation

Note: Windows builds are stable. macOS and Linux builds are produced by CI and in beta — if you try them, please report any issues. Testers wanted!

Prerequisites

  • Node.js 18+ and npm
  • Python + C++ Build Tools (for node-pty native compilation):
    • Windows — VS 2022 Build Tools with "Desktop development with C++"
    • macOSxcode-select --install
    • Linuxsudo apt install build-essential

Download

Grab the latest installer from GitHub Releases.

Platform Format
Windows .exe installer
macOS .dmg disk image
Linux .AppImage

Build from Source

git clone https://github.com/Codename-11/SubFrame.git
cd SubFrame
npm install
npm run dev     # Watch mode + Electron

Windows: Run DEV_SETUP.bat for automated prerequisite installation.

Installing AI Tools

npm install -g @anthropic-ai/claude-code   # Claude Code

See Codex CLI and Gemini CLI for their respective install instructions.

Development

Commands

npm run dev          # Watch mode (main TS + React) + Electron
npm run build        # Build main TS + React renderer
npm run typecheck    # TypeScript strict-mode check (main + renderer)
npm test             # Vitest test suite
npm run lint         # ESLint (TS/TSX)
npm run check        # typecheck + lint + test + verify:hooks + build (all quality gates)
npm run structure    # Update .subframe/STRUCTURE.json
node scripts/subframe-cli.js <command>  # SubFrame CLI (init, edit, open)

Architecture

Electron app with two processes communicating over typed IPC channels (src/shared/ipcChannels.ts):

Layer Path Stack
Main src/main/*.ts Node.js · TypeScript · Manager modules (init() + setupIPC())
Renderer src/renderer/ React 19 · TSX · Zustand stores · TanStack Query hooks · shadcn/ui
Shared src/shared/*.ts Typed IPC channels · Constants · Templates

Detailed architecture docs live in .subframe/docs-internal/.

Production Builds

npm run dist          # Current platform (unpacked)
npm run dist:win      # Windows installer (NSIS)
npm run dist:mac      # macOS (signed DMG)

Contributing

SubFrame is in early beta and we'd love your help — bug reports, feature ideas, docs, code, or testing on macOS/Linux.

See CONTRIBUTING.md for the full guide, including setup instructions, code conventions, and what makes a good PR.

License

MIT License — free to use, modify, and distribute. See LICENSE.

Acknowledgments

SubFrame is built upon Frame by @kaanozhan, whose original project provided the foundation — multi-terminal PTY management, file explorer, and the vision for a terminal-centric AI coding IDE.


v0.15.0-beta · Public beta — feedback welcome · sub-frame.dev

Yorumlar (0)

Sonuc bulunamadi