Eashan Babber

I'm a freshman at UC Santa Cruz studying Robotics Engineering. I like solving real problems for people, and I carry what each project teaches me into the next one.

About

About me

I am drawn to building systems that solve real-world problems, bring people together into a community, or simply put a smile on someone's face.

School
UC Santa Cruz (UCSC)
Year
Freshman
Studying
Robotics Engineering

Why robotics

I didn't know anything about robotics before coming to UCSC, so there is no robotics on this site yet. That is also why I chose Robotics Engineering: it interests me, and I want to learn it.

How I use AI

I don't use AI for schoolwork. Doing that work myself matters to me, because the more I understand on my own, the better my ideas will be. Outside of schoolwork, I use AI to learn, as a teacher that explains things instead of giving me the answers, and to bring my ideas to life.

I also built this site with AI, to show how I work with it.

What I'm into

I love diving deep into topics that interest me. Right now those are agentic development, game development, mobile development, networks, and my artistic passion, photography.

This room

This site is a listening room. The record holds my projects and open-source work, and the things around the room are the rest of me, the way they would be in a real listening room.

Open source

Open source · Meta's Python type checker and language server

pyrefly

  • 2 fixes landed
  • 1 bug report
  • Contributor in pyrefly 1.3.0
I use it for
Code navigation for my coding agents: find references, call and type hierarchy
  1. Landed · 25 Aug 2026

    Finding a class's subclasses now looks in other files too

    Bug
    Asking for a class's subclasses (typeHierarchy/subtypes) found only the ones in the same file.
    Cause
    The same file was recorded two ways, as the editor's open copy and as the file on disk, and the two never matched.
    Fix
    Compare the file paths themselves, with a regression test across files.
  2. Landed · 28 Aug 2026

    Find references stops re-checking every file that depends on the one asked about

    Bug
    An upstream fix for call hierarchy (issue #3636) also made find references and find implementations fully re-check every file that depends on the one asked about.
    Fix
    Only the requests that need it (call and type hierarchy) still do, and #3636 gets the regression test it shipped without.
    Result
    Cold find-references in the PR's benchmark: 65.4 ms on main, 3.4 ms with the fix.

Open source · GBrain, by Y Combinator CEO Garry Tan

GBrain upstream

  • 3 fixes landed with credit
  • 4 bug reports fixed
  • Credited in 2 releases
How fixes land
Maintainers re-implement community PRs in a fix wave and credit the author, then close the original PR
  1. Landed · v0.48.1.0 · 2 Sep 2026

    Sync stops re-processing every page it has already processed

    Bug
    GBrain marks a page once it has pulled facts out of it, but writing that mark changed the page's fingerprint, so every export and sync processed every page again.
    Credit
    Re-implemented in fix wave #4790; the changelog reads “contributed by @DarkNightForge”.
  2. Landed · v0.46.35.0 · 27 Aug 2026

    Saving, capturing and deleting stop reporting success when they fail

    Bug
    These commands could report success while storing nothing, corrupting data, or deleting the originals.
    Credit
    Re-implemented in fix wave #4650, which credits @DarkNightForge.
  3. Reported · fixed in v0.46.25.0

    Sync deleted the wrong page: removing a file whose name ends in a hyphen deleted a different page (9 pages lost)

  4. Landed or fixed · v0.46.28.0 to v0.46.35.0

    Also fixed: config get printed secrets unredacted; the API-key check read different config sources in different places; the duplicate-page check missed identical pages; the unit tests depended on the machine they ran on

Projects

Usage awareness for coding agents · Open source

A1. Agent Efficiency

Someone I know was building with Claude Code, Anthropic's coding agent, and got frustrated that it didn't know how much usage his account had left while it worked. The data was available to Claude; it just didn't know it was there or where to look.

Started
August 2026
Public since
October 2026

Credits

Project, Claude Code and Hermes versions
Eashan Babber
Codex version
@Eclipse1231317
Claude Code usage checkpoint with choices to continue at full scope, use a cheaper model, or pause
A real usage checkpoint offers three ways to proceed.

Why I built it

His usage ran out mid-task, and by the time it reset, Claude had forgotten everything. My friend, who later built the Codex version, thought a lot of people were probably frustrated by this, and we spent a week researching how to solve it.

What I built

I built it for Claude Code, and my friend built it for Codex, OpenAI's coding agent, because those were the agents we used. The hardest design choice was what the agent should do when little usage is left: stop, or warn the user and let them choose whether to continue at full scope, switch to a cheaper model, or pause? We chose to warn and let the user choose, because it gives them more control.

Where it is now

We've only tested it on our own devices and agents, so we don't have user feedback yet. The screenshot above shows a real example of the agent's behavior changing.

Claude Code mods · Open source

A2. Claude Mods

I was having an agent teach me Python concepts from a lecture I missed, and I wanted diagrams right in the Claude Code terminal.

First mod
tui-diagrams
TCP handshake rendered as text and lines in a terminal
The TCP handshake in the stock terminal display.
The same TCP handshake shown as a rendered sequence diagram in Rio terminal
The same TCP handshake rendered by tui-diagrams in Rio.

Why I shared it

I built it mainly for myself. Once I figured out I could package it as a Claude Code mod, a plugin anyone can install, I made it public.

How it works

It turns diagrams written in Mermaid and PlantUML, two text-based diagram languages, into real pictures in terminals that support Kitty graphics, a way for a terminal to show images. The problem was that only some terminals support it, so I made the mod detect the terminal and fall back to the next best option, a diagram drawn in text, when it doesn't. I've only tested it in the Rio terminal on Windows, and a diagram takes a few seconds to load.

What's next

So far it's one mod, tui-diagrams. I'll add more as I find things I want my terminal to do.

Memory for my agents · Built on GBrain

A3. My GBrain

When I first started working heavily with agents, I immediately noticed that they would forget what my project was. I needed a system that would help Claude Code remember what it had been working on the day before.

In use since
June 2026
My fixes to GBrain
GBrain upstream

Credits

Setup, operation and integrations
Eashan Babber

What it is

I didn't create GBrain; it's Garry Tan's open-source project. What's mine is how I set it up and run it for my agents, and the fixes I've contributed back to it, listed under GBrain upstream.

How I got here

I started with CLAUDE.md and AGENTS.md, Markdown files that agents read as memory.

Then I tried claude-mem, an early tool for agent memory. But as projects got bigger, the agents' context filled up with project memory, and they would only sometimes update those files. Then I found GBrain, which links Markdown files through a vector database so agents can search them by meaning.

What I run now

I've been building up my GBrain since June 2026. I also set up a separate business GBrain that other people can connect their own agents to, and weekly GBrain health reports that arrive on my phone through Telegram.

A real example

In the screenshots below, I simply say “time to do lecture 10 cse 20.” It knows exactly what I mean from earlier lectures and how I like to be taught, for example, not giving me the answers to the lecture challenges.

Claude Code in a terminal. The prompt reads “time to do lecture 10 cse 20.” and the agent runs gbrain get projects/cse-20-lecture-study-notes.
A new session is asked only “time to do lecture 10 cse 20.” It reads the CSE 20 workflow page from GBrain first.
The agent replies: picking up L10 from 2026-10-30, with Parts 1 and 2 done, the next step is Part 3 (modules and imports, cells 26–44).
It picks up Lecture 10 where the last session left it on 30 October: Parts 1 and 2 done, Part 3 next.
The agent fetches Python documentation, runs every example, and says it will save the Part 3 notes and log the session to GBrain.
It runs every example, then saves the notes and logs the session back to GBrain for the next one.

Free-to-play football skill contest · playDTC

A4. GoldTickets

I'm a Lead Software Engineer at playDTC, a game studio, and I'm building its iOS and Android apps, which are in development.

Role
Lead Software Engineer at playDTC
Mobile apps
iOS and Android, in development
GoldTickets Bring a Friend card: when a friend joins with your link and locks their first ticket, you both get an extra ticket.
The public Bring a Friend feature on GoldTickets.

What I built

I set up link tracking in the backend so we can see which channels users arrive from. That lives in an admin panel I can't show. Then I built rewards on top of those links, which became the Bring a Friend feature in the screenshot.

Working with agents

Agents often say confidently that they know a library's documentation from training, even when it has changed. What has worked for me is connecting them to current documentation through MCP servers, a standard way to give agents tools and data. Google's developer documentation server, for example, helped me implement Google sign-in in the GoldTickets app.

Beyond engineering

Since playDTC is a startup, I take on more than engineering. I manage our infrastructure: the Neon database, Railway hosting, and the GitHub organization.

More about me

Home PC and Tailscale

I set up a tailnet, a private network between my own devices made with Tailscale, so I can reach my home PC from UCSC without exposing an SSH port to the internet. It also lets me move files between my devices easily.

Tailnet map

Photographs

Two men stand in the ashes of a burned house, with a brick chimney still standing behind them. One, seen from behind, wears a San Bernardino County Fire Department shirt. The other wears a yellow fire jacket, gloves and a face mask.
My Home 2025Scholastic Silver Medal (national award). Best of Show, 2025 Greater Conejo Valley Student Art Show. Featured in the Acorn.
The Orion Nebula, a glowing cloud of blue-white and pink gas around a bright core, surrounded by stars on a black sky.
Orion Nebula February 2026 · 420 exposures, about 3 hoursTelescope: William Optics RedCat 71 WIFD. Camera: Sony a7 IV. Tracker: Star Adventurer (original).
A close-up of a black dog lying with its chin on the floor, one amber eye open, a paw blurred in the foreground.
Eyes That Speak in Silence 2024Scholastic Gold Key (regional award)
A hummingbird with green and copper feathers perches on bare twigs, looking upward, lit from the side against a dark background.
Broken Wing 2025Mayor's Award, 2026 Greater Conejo Valley Student Art Show

Eagle Scout

Rank
Eagle Scout, Scouting America's highest rank

I originally thought Scouting was going to be weird and not worth it. I was wrong: it's where I learned most of my leadership skills.

As a patrol leader, I led my Scouts through the requirements for the Electricity merit badge, one of the harder badges to earn. I learned how to get younger Scouts' attention and explain things in a fun, engaging way.

Water polo

Played
Five years

I play goalie. Over the past few years I've learned that whoever the captain is, I'm the one directing the team in the pool, because from the goal I can see the whole pool and have to communicate clearly. I play because I care about my health and like being part of a team.

About this site

This site · Built with AI

The Vinyl Room

The longer you listen to a record, the more of the small parts that go into a song you notice. I wanted a site that works the same way: my projects on the record, and the rest of me around the room.

Built with
three.js, TypeScript and Blender
Agents
Claude Code and Codex

Why a listening room

I have a lot of hobbies, interests and ideas, and together they're what my life is about. I wanted something I can keep adding to that still looks good.

How I built it

I built it with Claude Code and Codex, over many iterations and tests. I gave the agents a reference image for the room and reviewed every version: an early one had objects clipping through each other, and the note cards next to the photos used to be much bigger. Staying involved in the work with the agents is how I got the experience I wanted visitors to have.