by kaanozhan
Platform for agentic - vibecoders and teams who use claude code and codex cli
# Add to your Claude Code skills
git clone https://github.com/kaanozhan/FrameNo comments yet. Be the first to share your thoughts!
Frame started as a lightweight terminal-first IDE. It's evolving into a full platform for developing and managing larger projects with AI agents — bringing structure, context, and organization to the way you work with Claude Code, Codex CLI, and Gemini CLI.
https://github.com/user-attachments/assets/6fe108d1-70c8-441e-a913-b34583c803b0
As projects grow with AI agents, things fall apart fast:
These problems are manageable on small projects. On larger ones, they become blockers.
Frame solves all of this.
Frame brings a consistent structure to every project you work on. When you initialize Frame in a project, it creates:
| File | Purpose |
|------|---------|
| AGENTS.md | Project rules and instructions — AI reads this automatically |
| STRUCTURE.json | Module map with intentIndex for fast file lookup |
| PROJECT_NOTES.md | Architectural decisions and context that persist across sessions |
| tasks.json | Task tracking with status, context, and acceptance criteria |
Every project gets its own isolated session — its own context, its own task list, its own notes. Switching projects in Frame means switching to a completely fresh, project-specific AI context. No bleed-over, no confusion.
This standard works with any AI tool. Claude Code and Gemini CLI read these files natively. For Codex CLI, Frame injects them automatically via a wrapper script — no manual setup needed.
The result: any developer (or AI agent) who opens a Frame project immediately knows where everything is and what's been decided. Onboarding a new AI session to a large project takes seconds, not minutes.
One of the hardest problems in agentic development is knowing when to capture context. Session boundaries are fuzzy — you might stay in the same session for hours. Task completion is ambiguous — agents don't always signal clearly when something is done. Trying to detect "important moments" mid-session is unreliable.
Frame's approach: use git commits as the single reliable boundary.
When you commit, something real happened. It's intentional, it's deterministic, and it's a natural checkpoint you're already making. Frame builds its entire context system around this moment:
When the next session starts, these files are read automatically. The agent picks up exactly where things left off — not from a vague session transcript, but from structured, up-to-date context written at the one moment you can be certain something real was completed.
The practical implication: commit often. Small, intentional commits aren't just good git hygiene — in Frame, they're how context stays accurate and agents stay oriented.
For features that won't fit in one session, Frame ships a built-in spec workflow. Each spec is four markdown files on disk:
.frame/specs/<slug>/
spec.md what we're building
plan.md how we'll build it
tasks.md broken-down work
outcome.md what actually shipped
Describe what you want and the AI drafts the spec. /spec.plan produces an implementation plan. /spec.tasks breaks the plan into discrete tasks that import into tasks.json (tagged with source: "spec:<slug>:T<n>"). /spec.implement walks them one by one — and after each task, the agent appends 2-3 sentences to outcome.md: what shipped, what diverged from the plan, what to follow up on.
That last file is the move that makes the rest worth doing. Plans tell you intent. Code tells you reality. outcome.md tells you the story between them, written while the agent's memory was fresh — the kind of context that's normally lost the moment a session ends.
Two principles shaped this:
tasks.json workflows are untouched.Instead of scanning the entire codebase, Frame's intentIndex maps concepts to files:
node scripts/find-module.js github # → githubManager.js + githubPanel.js
node scripts/find-module.js terminal # → all terminal-related files
node scripts/find-module.js --list # → all features and their files
This means AI agents spend zero time searching — they go directly to the right file.
Switch between AI tools without leaving Frame:
CLAUDE.md natively (symlink to AGENTS.md).frame/bin/codex injects AGENTS.md as initial promptGEMINI.md natively| Component | Technology | |-----------|-----------| | Desktop Framework | Electron | | Terminal Emulator | xterm.js | | PTY | node-pty | | Bundler | esbuild | | UI | HTML/CSS/JS |
git clone https://github.com/kaanozhan/Frame.git
cd Frame
npm install
npm run dev
Pre-built binaries available on the releases page for macOS, Windows, and Linux.
| Shortcut | Action |
|----------|--------|
| Ctrl+K | Start AI session |
| Ctrl+Shift+T | New terminal |
| Ctrl+Shift+W | Close terminal |
| Ctrl+Tab | Next terminal |
| Ctrl+Shift+G | Toggle grid view |
| `Ctrl+1-