Find what is missing from any project, then fix it
No build command written down, a settings file that won't parse, a credential sitting in a public file. Click once to see what this project is missing, then let your agent fix what it can.
AI agents are only as good as the instructions and direction you give them. But keeping that complete and consistent is hard to do by hand, especially as a project grows. The project optimizer scans your project and surfaces exactly what's missing or needs attention.
It starts by asking what kind of project this is: Code, Research, Content, Records, Personal, Orchestration, or General. That choice, saved as one line in NORTH-STAR.md, scopes which checks run — a Records gem is never asked for a test command, and a Code gem is never asked for a citation convention. A check your project's type rules out costs nothing, so every type of project can reach the same 100 and two projects' scores are finally comparable. Findings run across four weighted categories (content, files, code, setup), each ranked by severity. You can also export the full report as a prompt for your agent to act on directly.
Every finding is labeled structure or substance. Structure is a missing file or an unwired section — a starter kit clears it. Substance is what your build command actually is, what your project is actually for — no kit can write that for you. The score says both: "3 structure gaps, 2 things only you can fill in." A check crystl genuinely couldn't measure still counts against you, but it's capped so not knowing never costs more than the worst real answer would have.
crystl can now fix many findings for you. Files over your own stated size limit, a .claude/settings.json that won't parse, an instruction-file import loop, missing permission rules, and a credential sitting in a public file all come with a scoped prompt crystl hands straight to the agent already running in that gem. A couple of others — a CLAUDE.local.md or settings.local.json git would otherwise commit — get fixed with one line crystl appends to .gitignore itself, no agent needed.
No NORTH-STAR.md yet? The create north star button hands your agent a drafting conversation: it reads the repo, proposes what the project is for and who it serves, and asks you to correct it. Nothing is written until you approve it.
The checks keep growing with real use: whether your instructions say which files are generated, whether there's a command for running just one test instead of the whole suite, whether a long instructions file points outward instead of loading everything at once, whether a build-output directory like node_modules is actually gitignored, and whether a monorepo's sub-applications have anything for an agent to read at all. Code and General projects now get a place for their own documents too — specs and runbooks for Code, a plain docs/ folder for General.
The Explore tab gives you a directory-level view of every agent instruction file across your project. Browse into any folder, see what's covered, and add new ones right where they're needed, so coverage grows alongside the work.
Why it matters
Built for any kind of project
Code, Research, Content, Records, Personal, Orchestration, or General. Pick the type once and the optimizer only asks for what that kind of project actually needs.
One honest number
A single readiness score splits what's left into structure (a kit can fix it) and substance (only you can). A check your type rules out costs nothing, so every project type can reach 100 and scores are finally comparable across projects.
Point it at your direction
NORTH-STAR.md is the file that says what a project is for. The create north star button drafts it with your agent, reading the repo first, so you correct a draft instead of starting from nothing.
One-click fixes
Create a missing file, add a Build & Run section, insert a block from the library. For the gaps that need a human decision — oversized files, a broken settings.json, a credential in a public file — one click hands a scoped prompt to the agent already in that gem instead.
Explore your project
The Explore tab maps every agent instruction file across your project. Browse into any directory, see what's covered, and add new files right where they're needed.
Export for agents
Copy the full optimization report as a prompt. Paste it into your agent and let it fix every gap with project-specific content, not generic placeholders.
try it yourself
A free account and a download. macOS only, for now.
get startedgetting started guide →Frequently asked questions
- What does the optimizer check?
- Findings run across four weighted categories: content (what your instructions say), files (which instruction files exist and how they connect), code (source files that have grown too large), and setup (.claude/settings.json, plugin recommendations). Which checks apply depends on the project's type — a Code gem gets build/test/convention checks, a Research gem gets sources and a citation convention instead.
- How does the scoring work?
- Content is weighted 3x, files and code 2x, and setup 1x, combined into one score out of 100: high (75+), medium (40-74), low (below 40). Every finding is also labeled structure (a starter kit can fix it) or substance (only you can). A check your project's type rules out costs nothing, so every type can reach 100 — a check crystl genuinely couldn't measure still counts against you, but it's capped so not knowing never costs more than the worst real answer would have.
- What can I fix directly from the optimizer?
- Most structural gaps have a one-click action. Some create a file or insert a block; others — oversized files, a settings.json that won't parse, an import loop, missing permission rules, a credential in a public file — hand a scoped prompt straight to the agent already running in that gem. A couple, like a CLAUDE.local.md git would commit, get fixed with one line crystl writes to .gitignore itself. Substance gaps and the direction-file finding hand your agent a drafting prompt instead (the create north star button). For everything else, the export button generates a report you can hand to your agent.
- What if my project isn't code?
- Set its type — Code, Research, Content, Records, Personal, Orchestration, or General — from the optimizer, gem settings, or the New Gem panel. The type is saved in NORTH-STAR.md and scopes which checks run, so a notes-and-finances gem is never asked for a build command.
- Does it work with monorepos?
- Yes. The optimizer reads whatever your agent actually reads: it follows an @-import or symlink chain from CLAUDE.md, including one that leads to AGENTS.md. It doesn't penalize a monorepo for not duplicating CLAUDE.md into every subpackage, since Claude Code already reads the root file from anywhere in the tree.
- Does it work over SSH?
- Yes. The optimizer reads remote project files through crystl's SSH connection. Health scores, gap detection, and file creation all work on remote machines; plugin recommendations are skipped there since that state lives on your Mac.
- How often should I run it?
- After any major project change: new dependencies, restructured directories, or onboarding a new team member. The re-analyze button refreshes instantly, and a brand-new gem offers to run it for you.
Crystl's Book of Spells
Master crystl with a grimoire of powerful prompts. Summon heroes, assemble a party, revive shards, and complete epic quests.
open the book →More features
Gems & Shards
Gems, shards, and the crystal rail keep every project one click away.
just-ask control
Ask for what you need and your agent does the clicking: text staged for copying, a button that runs the command, a task added, work booked for tomorrow.
Floating Cards
See what every agent needs from you, the moment it needs it.
Agent Activity Panel
One live view of every agent across all your gems: who's working, who's idle, and where tokens are going.
Schedule Agents
Launch a fresh agent at a set time (once, daily, or weekdays). Pick the gem, agent, model, and prompt; crystl fires it on schedule.
Automation (Sequences)
Automate the work you keep doing by hand. Write the job down once and let a schedule, a file landing, or a watched URL run it for you.
Parallel Sessions
Run multiple Claude instances on the same repo in separate git worktrees.
Hero Shards
Summon a single hero as a shard (its own agent, model, and persona) without a quest party.
View Modes
Read a session as a terminal, as a conversation beside it, or as a conversation filling the window. The terminal keeps running either way.
History Navigator
Browse, jump through, and search every session: conversation and tool calls.
Token Tracking
Track token burn per shard, estimate turns left, and reclaim context window by disabling heavy plugins and skills.
Workbench
A slide-out task list in every project, backed by a WORKBENCH.md the agent reads and writes with you.
Markdown Editor
Render and edit any .md in a side panel. Toggle it from the workbench, and let agents open docs for you from the CLI.
Prompt Integration
Facet Inserts give you one-click access to saved prompts, commands, and shortcuts.
Agent File Editor
Create, edit, and manage CLAUDE.md, rules, skills, and agent config files with a block editor, file chooser, and project optimizer.
Skills Library
Browse and import agentic skills that teach agents like Claude Code or Codex new tricks: code review, testing, deployment, and more.
cavrn terminal
The terminal as structured data: every turn, tool call, result, and table captured as agent-readable metadata. Drawn fast on the GPU with Metal.
Remote Development
Full crystl integration over SSH: approval cards, file relay, and click-to-open on remote machines.
Open Models
Run open models locally or hosted, orchestrate them with frontier agents, and cut token costs.
Agent Orchestration
One agent spawns, supervises, and merges the work of many: a control room for a team of coding agents.
crystl quest
Assemble a party of specialized agents. Each brings unique skills, coordinates in shared chat, and executes in parallel.
Screenshot Bar
Drag recent screenshots into the terminal. Spotlight-powered, always up to date.
Copy Bar
A one-click copy bar under the terminal. Agents stage text, you click Copy. Editable, up to 10 tabs, free.
