Terminal-first desktop app for running AI coding tools in real project context (Claude Code, Codex CLI, and more).
Frame is an Electron app that brings order and memory to AI-assisted development:
- Standardize projects with a consistent set of files:
AGENTS.md,STRUCTURE.json,PROJECT_NOTES.md, andtasks.json. - Preserve context as projects grow: decisions, session notes, and task tracking live with the repo.
- Make execution effortless: pick a project, pick a tool, run it in the right directory without
cdchurn.
Frame combines:
- Projects + File Explorer (sidebar) for fast navigation across multiple repos
- Multi-terminal (tabs + grid) with real PTY support (node-pty + xterm.js)
- Prompt history panel (commands with timestamps)
- Tasks panel (Frame-managed
tasks.json) - Tool-aware panels like Plugins (Claude Code) and GitHub (issues/branches/worktrees)
Out of the box, Frame ships with tool profiles for:
- Claude Code (expects
claudeinPATH) - Codex CLI (expects
codexinPATH) - Gemini CLI (expects
geminiinPATH) - OpenCode CLI (expects
opencodeinPATH)
You can switch tools in the UI (dropdown next to Start button) or from the app menu. The menu adapts to the active tool (commands, labels).
Some tools (like Claude Code) automatically read instruction files (CLAUDE.md). Others do not.
For tools that need it, Frame generates wrapper scripts inside Frame-managed projects:
.frame/bin/<tool>
When you start the tool from Frame, it uses the wrapper (if present) to prompt the tool to read AGENTS.md first.
- Node.js (LTS recommended)
- npm
git clone https://github.com/kaanozhan/Frame.git
cd Frame
npm install
npm startFrame does not bundle AI CLIs. Install the tool(s) you want and ensure the executable is available in your PATH:
claude(Claude Code)codex(Codex CLI)gemini(Gemini CLI)opencode(OpenCode CLI)
- Launch Frame:
npm start - Add/select a project (left sidebar)
- Choose your AI tool in the selector (Claude, Codex, ...)
- Click Start (or use the app menu:
CmdOrCtrl+K)
Frame restarts the terminal in the selected project directory and runs the tool (wrapper-aware when applicable).
If a repo is not initialized as a Frame project yet, you can initialize or upgrade it from the sidebar actions. Frame creates (without overwriting existing files):
.frame/(config directory)AGENTS.md(AI assistant instructions)CLAUDE.md(symlink/copy toAGENTS.mdfor Claude Code compatibility)GEMINI.md(symlink/copy toAGENTS.mdfor Gemini CLI compatibility)STRUCTURE.json(module map)PROJECT_NOTES.md(session notes)tasks.json(task tracking)QUICKSTART.md(onboarding).frame/bin/(wrappers for tools that need them, e.g. Codex/OpenCode)
The menu and UI provide most actions without shortcuts. These are the core ones:
CmdOrCtrl+K: start the active AI toolCmdOrCtrl+Shift+T: new terminalCmdOrCtrl+Shift+W: close terminalCmdOrCtrl+Tab/CmdOrCtrl+Shift+Tab: next/previous terminalCmdOrCtrl+Shift+H: toggle prompt history panelCmdOrCtrl+H: open prompt history fileCmdOrCtrl+Shift+P: toggle plugins panel (Claude Code)CmdOrCtrl+T: toggle tasks panelCmdOrCtrl+B: toggle sidebarCmdOrCtrl+Shift+[/CmdOrCtrl+Shift+]: previous/next project
# Watch renderer + run Electron
npm run dev"claude: command not found" / "codex: command not found" / "gemini: command not found" / "opencode: command not found"
Install the corresponding tool and ensure it is in PATH.
Install GitHub CLI (gh) and authenticate, then reopen the panel.
npm installMIT License. See LICENSE.