Skip to content

Compiler-accurate context for C and C++ agents.

ByteAsk Context reads your project through its real build, so Claude Code knows where a change belongs, what each call resolves to, and what else has to change.

Free during early access. For Claude Code and other MCP clients.

“Bug report: duplicate packets are sometimes counted as gaps. When seq_no wraps around past 4294967295 back to 1, stats.gaps increments and the duplicate check stops working.”

find_code_for_task# ByteAsk core pack (setting 'default', commit b9fdd0c9eb81, gcc 12.2.0; compiler and build facts, not text search)## Where the change most likely belongs1. tbt::FeedHandler::on_packet - include/tbt/handler.hpp:56-74 `void on_packet(const Packet &pkt)`2. tbt::FeedHandler::stats - include/tbt/handler.hpp:92-92 `const HandlerStats &stats() const`3. tbt::HandlerStats - include/tbt/handler.hpp:25-36## The code of 1 (include/tbt/handler.hpp; line numbers are the file's) 56 void on_packet(const Packet& pkt) { 57 ++stats_.packets; 58 const wire::StreamHeader& h = pkt.header; 59 if (h.stream_id == 0 || h.stream_id > Venue::kStreams) { ++stats_.bad_stream; return; } 60 61 // Line arbitration upstream can forward the same packet twice. 62 uint32_t& last = last_seq_[h.stream_id]; 63 if (h.seq_no <= last) { ++stats_.duplicates; return; } 64 if (h.seq_no != last + 1) ++stats_.gaps; 65 last = h.seq_no; …## What it calls (overloads as the compiler resolved them)- void on_order(const wire::OrderMsg &m) - include/tbt/handler.hpp:109- inline wire::OrderMsg read_order(const uint8_t *body) - include/tbt/decoder.hpp:23## Same shape nearby (often the second place a change needs)- tbt::FeedHandler::Slot::Slot - include/tbt/handler.hpp:98 `explicit Slot(const Instrument &i)` (same parameters)## Test and check- Existing test case of on_packet (new tests go next to it): tests/replay_test.cpp:37 h->on_packet(pkt);

A real answer from ByteAsk to Claude Code on a demo feed-handler repository, trimmed for length.

What your agent can ask

The index is built from your compile_commands.json, so it sees the code your compiler sees.

  • Where does this change belong?

    Places in your code ranked for the task, each with its evidence and the code itself.

  • What does this call actually reach?

    The code and callers of a function, with overloads and template instantiations as the compiler resolved them.

  • What else does this change need?

    The sibling overloads and other call sites a change probably has to touch too.

  • How does fmt do it?

    Search public C and C++ libraries ByteAsk has indexed, such as fmt, abseil and spdlog.

One prompt to set up. No software to install.

Claude Code shows each change and waits for your OK before it applies it.

  1. Paste one prompt

    Claude Code registers the ByteAsk MCP server and adds a short block to ~/.claude/CLAUDE.md. Nothing is installed.

  2. Sign in

    Restart Claude Code, type /mcp, pick byteask, choose Authenticate, and sign in in your browser.

  3. Approve what is indexed

    Your agent asks first and previews exactly which files would be uploaded, by folder. Leave any folder out.

  4. Work as usual

    Your agent asks ByteAsk while it works. After it edits files, it syncs only the changed ones.

Needs a compile_commands.json and a git origin remote. Linux and macOS.

Please set up ByteAsk for C/C++ in Claude Code.

This setup makes two configuration changes and installs no software.
Show me each change and wait for my OK before applying it.

1. Register the ByteAsk MCP server for all projects:
   claude mcp add --scope user --transport http byteask https://context.byteask.ai/mcp

2. Add the block below to ~/.claude/CLAUDE.md (create the file if it does not exist).
   …
Read the full prompt and the setup guide

What leaves your machine, and what doesn’t.

Indexing uploads source files to ByteAsk. Here is exactly which ones, and how to have them deleted.

Before you approve
Nothing. No code is uploaded until you sign in and approve indexing a repository.
When you approve
The files your build reads, uploaded to ByteAsk’s servers: sources, headers, generated headers and the system headers they include. Only from the folders you keep.
Not uploaded
Docs, test data, assets and .env files.
After your agent edits
Only the changed files from the list you approved.
Read by a model
To rank where a task’s change belongs, a small OpenAI model reads short excerpts of candidate code through OpenAI’s API. Under OpenAI’s API terms, that data is not used for training.
Deleting
Delete a repository or your whole account any time at app.byteask.ai. Access ends at once and copies are removed.
For companies
A dedicated server, or on-prem. Contact us.
Security details in the Trust Center

Early access is free for now.

To remove it later, run claude mcp remove byteask and delete the byteask block from ~/.claude/CLAUDE.md.