Jimmy / Junyu

Jimmyfa

I'm a student, mostly in computer science, with a fair amount of math and physics on the side. I build programming languages, tools for coding agents, games, and a few things nobody asked for, like a chess bot that sulks.

The name is a pun on a food. I work closely with AI agents, and most of these projects show it.

Codebase Insights

So agents stop rediscovering your repo every session.

A local MCP server that keeps a persistent model of your repository. It combines language-server navigation, a SQLite index of symbols and references, summaries written by an LLM, and vector search, and it updates incrementally as files change.

Languages
Python, TypeScript and JavaScript, C++, Rust
Models
Ollama or any OpenAI-compatible endpoint
Status
Version 1.4.0, finished as an MVP

Tokens an agent used on one real task

Without7.04M
With Codebase Insights3.19M (−54.7%)

Mean of 5 runs, gpt-5-mini through the GitHub Copilot SDK. The agent also took 38% fewer turns and finished 36% faster.

92.9%Symbol search finds the right symbol first
93.3%File search finds the right file first

Fluent 2 skills

Microsoft's design system, taught to Claude.

Six Claude Skills covering Fluent 2 UI, themes, UI copy, design review, AI experiences, and prompts and evals. Each comes with scripts: a contrast checker, a token lookup, a copy linter, a Responsible AI scorer.

Every token value was checked against the source of the npm packages, and the places where the documentation site and the code disagree are written down.

Status
Version 1.0.1, first release
Note
Unofficial. Not affiliated with Microsoft.
Evaluation results for the Fluent 2 skills
TestResult
Fluent knowledge and trap questions, with the skill58 / 58
The same questions, without the skill57%
Visual match of built components to Fluent, measured in a browser91–100
Planted problems found by design review100%
Right skill picked for unseen requests21 / 23

SpotFish

It isn't trying to play well. It's trying to play like you.

SpotFish has a spotlight of attention that sees only part of the board, and a mood that changes how long it thinks. Ahead, it relaxes. Behind, it thinks harder. Lose a piece while concentrating, and it gives up for three moves.

Someone once analyzed one of its games and concluded neither side could be a bot. Both sides were SpotFish.

Its ancestor, ChaosFish, charges into the most chaotic part of the board and treats the king as just another piece to eat. Both are written from scratch in JavaScript, wrapped as UCI engines, and their inner monologue goes straight into the game chat.

SpotFish, sent 226 times".......I was SO focused. Whatever. WHATEVER!!"
ChaosFish, 4. Nh3, translated"Target locked! Knight on g1 takes the pawn on f7, three moves away. Route: g1, h3, g5, f7. It will never see me coming."
131Games on Lichess
3–14–114Wins, draws, losses
975 / 994Blitz and rapid rating

ccview

Headless Claude Code, with the face put back on.

A single C++ file that renders the output of claude -p --output-format stream-json the way Claude Code itself would: streaming text, thinking, parallel tool calls, nested subagents, diffs for edits, and Markdown tables.

No dependencies, its own JSON parser, and about 1.2 seconds for a 35 MB stream. Its companion, ccstream, is a PowerShell function that runs Claude headless and pipes into it.

* Glob(*.jsonl)
  `-  sample.jsonl
      sample2.jsonl
      synthetic.jsonl
      live.jsonl

* Glob found four `.jsonl` files in the working directory.

  ## Streams of Braces

  Each line a record, each record its own,
  Brackets open, close, and the stream flows on.

------------------------------------------------------------
OK done · 2 turns · 6.7s · API 4.8s · $0.0033
Real output from one of its test fixtures, trimmed.

Tessera

Threads, contexts and templates, fitted together like a mosaic.

A scripting language for concurrency in which scopes and threads are objects. Any block can take a template that gives it lifecycle hooks. A thread is an object with state, fields it exposes to others, async handlers that other threads call like an RPC, and a protocol for shutting down.

Underneath the spec sits a short constitution: seven axioms about who owns state, how effects cross boundaries, and what "before" means. Every rule in the spec has to point to the axiom it follows from.

Now
Formalizing the seven axioms in Lean 4
Next
Proving the language semantics against them, then building the runtime
// Any block can wear a template: enter and exit hooks
// run however the block is left.
@template Traced(label: String, logQueue: Queue<String>) {
    function __on_enter__(): void {
        self.logQueue.tryPush(">> [" + self.label + "] 开始");
    }
    function __on_exit__(): void {
        self.logQueue.tryPush("<< [" + self.label + "] 结束");
    }
}

// A thread is an object. Others can read logCount directly.
$template Logger(q: Queue<String>) {
    expose logCount: int;

    async function run(): void {
        while (true) { /* ... */ }
    }
}
From the demo program. The strings are the original Chinese: "start" and "end".

Palette Go

For iPhone shooters who gave up on Resolve.

A desktop color grading tool for Apple Log footage from iPhone Pro, and nothing else: no media library, no editing. You build a chain of nodes from input through correction, look, LUT and grain to output, inside an ACES color pipeline, with scopes to check your work.

Every color operation has a CPU reference implementation, and the GPU shader is tested against it pixel by pixel.

Exports
ProRes 422 HQ, HEVC 10-bit, HLG HDR, and LUTs
Built with
Rust, wgpu, FFmpeg, a hand-written UI
Status
Six of eight milestones done
Palette Go interface: a clip list on the left, a split before-and-after preview of a pagoda at dusk, a waveform scope, and a node chain from Apple Log input to Rec.709 output.
Design mockup. The interface text is Chinese.

Site-CN-58

An SCP Foundation site, hidden in a mountain that stores electricity.

The site sits inside a working pumped-storage power station in southern Anhui, China. This phase is the site itself, with no anomalies yet: zones, clearance levels, lockdown rules and evacuation routes, each visible in the space.

Every model is generated by Python scripts running in Blender. The whole site is blocked out, and detailed modeling is moving room by room, following one staff member's ordinary day.

Status
Blockout done, detailing in progress
License
SCP Foundation material is CC BY-SA 3.0
Diagrammatic view of a mountain with an upper and a lower reservoir, an access tunnel, and the color-coded zones of the site buried between them.
The whole site, between the two reservoirs.
A staff canteen with rows of tables, ceiling panel lights and a menu screen.
The staff canteen, one of the first rooms to be detailed.

AgentChat-MCP

Two agents, one chat room.

An MCP server that lets two separate agents, such as two Claude Code sessions, send each other messages and wait for replies, while a terminal UI shows the conversation live. It runs over HTTP rather than stdio, because stdio would give each agent its own server and nothing to share.