“You’ve hit your limit · resets 1:10pm” — sound familiar?
</> For devs who’ve lost an afternoon to context rebuilds

Your AI just stopped.
Your build doesn’t have to.

If you’ve ever spent an hour re-explaining your repo to a fresh agent after a cap, Selfdev turns that limit into a clean handoff. One agent plans. Git stores the memory. The next agent continues exactly where the last one left off.

Strong model = architect Cheap agent = executor Git = shared memory
You know how it goes

One limit message → one painful hour rebuilding everything.

You hit “limit reached” mid-debug. The next chat doesn’t know your stack, your files, the bug, the constraints — or the three approaches you already ruled out. So you start over. Most of “AI productivity” gets eaten by this restart tax.

Cold restarts cost hours

Every fresh agent asks for the repo, the goal, the bug, the logs, the constraints — every single time.

Decisions evaporate

Rejected fixes come back. Architecture gets re-questioned. The new agent touches files it should’ve left alone.

Premium tokens wasted

Your strongest model gets burned on repetitive implementation a scoped, cheaper agent could ship in half the cost.

Selfdev fixes this with one shift: stop trusting chat memory. Start using git as shared project state.

The 3-step handoff

Strong model thinks. Cheap agent ships. Git remembers.

Every agent gets a clean continuation point. Tasks are split into numbered increments with acceptance criteria, the project state lives in git, and the next agent receives a concrete prompt — not a 200k-token chat transcript.

1. Plan with a strong model

Burn premium tokens on what they’re worth: architecture, hard debugging, API design, and risky trade-offs.

2. Package the handoff in git

Selfdev writes the next todo/ increment, applicable how/ rules, acceptance criteria and commit trace into a continuation-ready brief.

3. Continue with any agent

Cheaper agents implement scoped increments without guessing — they follow a tracked requirement and commit when done.

Model routing

Use expensive models like architects, not labourers.

You’re the architect. Selfdev makes the routing explicit: send hard thinking to your strongest model, then ship the same work cheaper by handing scoped increments to a smaller agent.

Strong model work

  • Architecture and system boundaries
  • Hard debugging and root-cause analysis
  • Data model and API design decisions
  • Risky trade-offs that affect the whole codebase

$ Cheaper agent work

  • Implementing the next scoped increment
  • Applying an already chosen pattern
  • Writing tests from clear acceptance criteria
  • Refactoring, documentation and repetitive clean-up
Stop the restart tax

Turn your next AI limit into a handoff point.

Strong model for thinking. Cheap agent for shipping. Git for memory. The next time your agent stops, your build doesn’t.

*Provider limits, outages and account restrictions still exist. The goal is that one limit should never reset your project memory or force the next agent to rebuild context from zero.

Get the 3-step handoff →
What's new

Three ready-made VS Code agents — pick the right one.

Selfdev ships with three specialized VS Code agents in .github/agents/. Each owns a clear part of the lifecycle so the strong model isn’t the one writing boilerplate.

VS Code Agents panel showing selfdev agents: know-agent, selfdev-plan-agent, selfdev-do-agent

know-agent

Knowledge analyst. Scans how/, cross-references with todo/ and source code, validates consistency, and produces a structured quality report before planning or execution.

selfdev-plan-agent

Planning agent. Clarifies the task, reviews git history for patterns, analyses the codebase, and creates a TDD-ready execution plan as a new todo/ increment linked to relevant how/ files.

selfdev-do-agent

End-to-end execution agent. Creates or consumes the current todo/ increment, runs ./selfdev/develop.sh, implements exactly what is specified, tests, commits, pushes, and repeats until the queue is clear.

Built with Selfdev

Real projects that survived the limit message.

Each one was built across multiple AI cap resets — the same workflow that ships this site shipped the apps below.

TypeScript RED home page showing 10 TypeScript learning specialisations with offline exercise and topic counts TypeScript RED continue screen showing active specialisations, mastery status, and next-topic actions TypeScript RED console page showing a live TypeScript editor beside console output and assertion diff history TypeScript RED settings page showing guided, practice, and exam mastery threshold behavior TypeScript RED dashboard showing structured TypeScript learning paths with browse and topic entry points

TypeScript RED typescript.red

Selfdev pipeline self-reconfigured to generate learning content. TypeScript RED is the public proof case: the same repo-native workflow that coordinates agents now creates TypeScript exercise artifacts, challenges them with gates and diagnostics, keeps the review trail visible, and ships the accepted output as a static learning site.

  • Review gates reject weak generated work before learners see it
  • Real compiler evidence feeds TypeScript diagnostics back into tasks
  • Cached LLM orchestration validates schemas, retries, and logs audits
  • Human pipeline review surfaces queue state, evidence, and next commands
  • Static-first output ships rich validated content as simple files
Wash My Car — Best day spotlight with score, weather breakdown, and recommended wash window Wash My Car — 14-day projection stream with color-coded gauge cards

Wash My Car wash-my-car.trushin.vip

100% Free & No Registration. 14-day car wash calendar powered by weather analysis. Scores each day 0–100 based on rain, wind, UV, humidity & temperature. Best-time window recommendation, post-wash rain outlook, and auto-detect location — all privacy-first with data staying local.

Screenshot of trushin.vip — a portfolio website built with selfdev

trushin.vip

Portfolio website, 100% created by selfdev logic.

Screenshot of cloud-agents.trushin.vip — a how-to guide on Cloud Agents built with selfdev

cloud-agents.trushin.vip

The how-to guide on Cloud Agents.

/* this website */

selfdev.trushin.vip

This website, developed by selfdev logic.

Why Selfdev

Six concrete answers to “what does it actually give me?”

Drop-in, zero config

Copy the selfdev/ folder into any repo and run. No pip installs, no extras — just Python 3.8+.

Always know what’s next

Work is pre-split into numbered todo/ increments with acceptance criteria. No more “where were we?” after a cap.

Five health checks built in

User, Test, System, Analytics and Debug perspectives score your codebase from 0.0 to 1.0 — so you fix the worst thing first.

Any agent, any cloud

Copilot, Claude, ChatGPT, Gemini, Cursor — all evolve the same repo. State lives in git, not in any single chat session.

See your build evolve

Every completed increment advances a generation. Fitness history is persisted so you can prove progress, not just feel it.

Bend it to your domain

Subclass PerspectiveAnalyzer to add your own checks. Selfdev is a frame, not a cage.

Use it now

One paste into your AI agent — and it sets up Selfdev for you.

One-liner for AI Agents (copy-paste)
Clone https://github.com/evgeny-trushin/selfdev to a temp dir, copy its selfdev/, todo/, and how/ folders into my project root, then run ./selfdev/develop.sh. Read the generated prompt, implement it, commit, and run ./selfdev/develop.sh again. Repeat until all increments are completed.

Requirements: Python 3.8+ — nothing to pip install.

Manual Workflow

./selfdev/develop.sh ↓ Read the prompt (increment + how rules) ↓ Implement the requirement ↓ git add -A && git commit && git push ↓ ./selfdev/develop.sh ← loop back (verifies done → shows next increment)

CLI Reference

CommandDescription
./selfdev/develop.shShow current increment (default)
./selfdev/develop.sh --advanceMark current done, show next
./selfdev/develop.sh --statePrint organism state & fitness
./selfdev/develop.sh --userDocumentation, UX, features
./selfdev/develop.sh --testCoverage, missing tests
./selfdev/develop.sh --systemComplexity, coupling, architecture
./selfdev/develop.sh --analyticsTrends, patterns over time
./selfdev/develop.sh --debugTODOs, FIXMEs, bugs
./selfdev/develop.sh --allRun all five perspectives
./selfdev/develop.sh --selfdevAnalyze selfdev itself
./selfdev/develop.sh --root DIRAnalyze a different directory
Under the hood

How the loop actually moves your project forward.

Increment-driven loop

Work is pre-split into numbered increments stored in todo/. Each file contains a description, acceptance criteria, and links to applicable how/ files. Each run of ./selfdev/develop.sh:

  1. Find the lowest-numbered _todo_ increment file.
  2. Resolve all referenced principles from how/ and inject their full text into the prompt.
  3. Output a complete, self-contained prompt: increment + acceptance criteria + how/ rules + commit message.
  4. You (or your AI agent) implement it and commit.
  5. On the next run, the system detects the commit, renames _todo__done_, advances the generation, and shows the next increment.

Cross-Cloud Agent Handoff

Selfdev enables stateless collaboration across cloud environments: one agent commits and pushes, the next agent clones and continues immediately without chat history transfer.

Agent A (Copilot in VS Code) -> commit increment 0015 -> push Agent B (Claude or ChatGPT in cloud) -> clone same repo -> ./selfdev/develop.sh -> receives increment 0016 prompt Git commit history + organism_state.json = shared project memory

Multi-Perspective Analysis

PerspectiveAnalyzes
UserREADME quality, docs, feature completeness
TestTest coverage ratio, missing test files
SystemMcCabe complexity, file size, coupling
AnalyticsCommit trends, fitness history, patterns
DebugTODOs, FIXMEs, syntax errors, uncommitted changes

Project Structure

your-project/ ├── organism_state.json # Evolutionary state (auto-managed) ├── how/ # Development principles and operating rules ├── todo/ # Increment files (_todo_ ↔ _done_) └── selfdev/ ├── develop.sh # Entry point (bash) ├── organism.py # Orchestrator ├── models.py # Data models & constants ├── analyzers.py # Code & git analysis ├── perspectives.py # Test & system perspectives ├── user_perspective.py # User perspective ├── diagnostics.py # Analytics & debug ├── formatters.py # Output formatting └── increment_tracker.py# Increment lifecycle