Find your way in.
Move from a file to a definition, a reference, or a call. Turn a sprawling repository into a path you can follow.
Explore the codeCode is easier to generate than ever.
Understanding it still matters. Meet your new reading companion.
v0.1.248 · Apple silicon (ARM64) · macOS 14+Early Access Preview · Expires (UTC)
import { readFile } from 'node:fs/promises';
export async function openDocument(path: string) {
const cached = documents.get(path);
if (cached) return cached;
const source = await readFile(path, 'utf8');
const document = parseDocument(source);
documents.set(path, document);
return document;
}The reader checks the cache before opening a file. Once loaded, the document is stored by its path, so the next request can reuse it.
reader.ts:4–10import { openDocument } from './reader';
export async function selectFile(path: string) {
const document = await openDocument(path);
tabs.open(document);
context.setActiveDocument(document);
return document;
}
// Each connection is a place to explore.Selecting a path calls openDocument. The returned document is added to the tabs, then becomes the active reading context.
workspace.ts:3–8export async function openDocument(path: string) {
const cached = documents.get(path);
if (cached) return cached;
// Another call can reach this point too.
const source = await readFile(path, 'utf8');
const document = parseDocument(source);
documents.set(path, document);
return document;
}Yes. Two calls can both miss the cache before either read finishes. Caching the in-flight promise would let concurrent calls share the same operation.
reader.ts:2–7A new codebase. A complicated change. A question that leads to three more. Yenpo gives you the space and tools to follow the thread, without losing your place.
Move from a file to a definition, a reference, or a call. Turn a sprawling repository into a path you can follow.
Explore the codeThink alongside an AI reader. Ask about the code, inspect the evidence, and take the next question a little deeper.
Meet your reading companionLook beyond the lines that changed. Explore the surrounding behavior and make your own judgment with context.
Take a closer lookWe can write less code.THE THOUGHT BEHIND YENPO
We can’t afford to understand less of it.
Move beyond a plausible-looking patch. Check the behavior, the boundaries, and the evidence.
Read the storyA practical way to trace execution across files while keeping the original question in view.
Read the storyStart with one behavior, follow its path, and build a map you can actually use.
Read the storyMake room for the part of engineering that matters: understanding.
Download EAP v0.1.248 EAP · Apple silicon (ARM64) · macOS 14+Expires (UTC)