Context Runtime
Hosted MCP server for facilitating access to personal <> industry context.
- year
- 2024–26
Getting stuff done is a function of how little friction I have between having the problem that needs to be solved articulated in my head and expressing that articulation to the model, with the necessary context, for it to start working on the problem. That's what work means. … I want to reduce friction quite a lot for that process, for myself and for others. edited
I’ll have been working steadily on this for two years next weekend
it was at first my tool to facilitate Cursor-esque interactions in the terminal
which I needed because I didn’t like cursor and so just did a lot of copypasting back and forth between simple text editor & chatgpt edited
and then it evolved as I used it more → the meta shifted
Terminal
contextualize delivers strings for git/filesystem refs + external sources to clipboard /+ stdout.




contextualize was originally named for the act of fetching context for pasting into context edited
which yeah is now handled largely by the model
so the contextualize library/CLI facilitates that now, by preparing (fetching/formatting) context for that purpose
$ contextualize map src/contextualize/\
references/address.py
src/contextualize/references/address.py:
⋮
│_CLOCK_TIME_RE = re.compile(
│ r"^(?:(?P<hours>\d{1,2}):(?P<h_minutes>[0-5]\d)|"
│ r"(?P<minutes>(?:\d{1,2}|[1-9]\d{2,})))"
│ r":(?P<seconds>[0-5]\d(?:\.\d+)?)$"
⋮
│@dataclass(frozen=True)
│class MarkAddress:
│ base: str
⋮
│ def as_span(self) -> dict[str, Any]:
⋮
│def parse_clock_time(text: str) -> float | None:
⋮
│def parse_time_range(text: str) -> tuple[float, float | None] | None:
⋮
│def split_mark_address(target: str) -> tuple[str, MarkAddress | None]:
⋮
│def format_clock_time(seconds: float) -> str:
⋮
$ contextualize --count cat README.md \
src/contextualize/references/address.py
Total: 1195 tokens (cl100k_base).