Writes C++. Proves it compiles, runs, and passes.
ByteAsk works in your terminal. It edits the code, runs the compiler, the sanitizers and your tests, and can drive the gdb session you already have open. You review the diff.
$ curl -fsSL https://code.byteask.ai/install.sh | shBuilt-in support for
It does the work you would have checked anyway
It runs the compiler
Your flags, your build system. The diff you review has already been built.
It joins your gdb
Through a bridge you arm yourself, inside the session you already have open.
It shows the raw output
Frames, files and line numbers intact, so you can audit the reasoning.
It asks before it acts
Read-only commands run. Anything that changes state is proposed first.
It joins the gdb session you already have open.
Linux allows one debugger per process. ByteAsk joins through a bridge you start in your gdb, reads the live state, and asks before it changes anything.
Your gdb holds the process. A second debugger is refused by the kernel. ByteAsk goes through the bridge you started.
How a session is wired.
Check it yourself: while your gdb holds a process, run gdb -p <pid> in another shell.
You get the tool's full output.
ByteAsk builds with your flags, runs the sanitizers, and runs your tests. It hands back the raw report with the frames, files and line numbers intact, so you can check the agent's reasoning against the same evidence.
==2967905==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60c0000000c8WRITE of size 4 at 0x60c0000000c8 thread T0 #0 0x55d75c82e5a6 in OrderBook::cancel_all() demo/outputs/order_book.cpp:31 #1 0x55d75c82e5a6 in main demo/outputs/order_book.cpp:42 #2 0x7feead645249 in __libc_start_call_main libc_start_call_main.h:580x60c0000000c8 is located 8 bytes to the right of 128-byte regionallocated by thread T0 here: #0 0x7feeadcb94c8 in operator new(unsigned long)SUMMARY: AddressSanitizer: heap-buffer-overflow demo/outputs/order_book.cpp:31
Test project demo/outputs/build1/3 Test #1: book_ops ......................... Passed 0.00 sec2/3 Test #2: risk_engine ...................... Passed 0.00 sec3/3 Test #3: wire_codec ....................... Passed 0.00 sec 100% tests passed, 0 tests failed out of 3 Total Test time (real) = 0.01 sec
Nothing in these two blocks was typed by hand. They are what the tools printed.
Every tool call is visible
Each one runs as its own step you can see, with its arguments and its output, so nothing the agent does is hidden behind a summary.
It reads the project the way clangd does
Generates compile_commands.json, then navigates by symbol rather than by grep.
- clangd
- CMake
- Compiler Explorer
- C++ Insights
Sanitizers, debuggers and deterministic replay
ASan, UBSan, TSan and Valgrind, batch and stateful gdb or lldb, and rr for a trace you can replay.
- ASan
- gdb
- lldb
- Valgrind
- rr
Your config, not ours
clang-tidy and clang-format read the .clang-tidy and .clang-format already in your tree.
- clang-tidy
- clang-format
- cppcheck
Measure, then change
perf and Callgrind for the real workload, QuickBench for a single function.
- perf
- Callgrind
- QuickBench
Down to the instruction
objdump, nm and readelf, PIE-aware symbolization, and decompilation when there is no source.
- objdump
- nm
- readelf
Use our models, your key, or your own server
Managed
Sign in and use OpenAI, Anthropic and Google models through ByteAsk. No API key to paste.
byteask loginYour key
Use your own OpenAI, Anthropic or Gemini key. Traffic goes straight to the provider, not through ByteAsk.
byteask byok setYour server
Point ByteAsk at vLLM, Ollama, llama.cpp, LM Studio, TGI, SGLang or a LiteLLM proxy. Self-hosted models are not metered.
byteask models add my-model --url http://your-host:8000
Reference documents it can cite
Built-in reference tools search these standards and datasheets and return the exact passage with a citation. If there is no match, they say so instead of guessing.
| Tool | Corpus |
|---|---|
| autosar_ref | AUTOSAR C++14 · MISRA · ISO C++ |
| mcu_ref | STM32 · Cortex-M · Modbus · CAN |
| fpga_ref | Xilinx UltraScale · AMBA AXI |
| hft_ref | ITCH/OUCH · FIX · IEEE 1588 PTP |
| grid_ref | IEEE 1547 · 2030.5 · SunSpec |
| scpi_ref | SCPI · instrument manuals |
| x86_ref | x86-64 Software Developer Manual |
Four steps, then you are reviewing a diff
$ curl -fsSL https://code.byteask.ai/install.sh | shOr a plugin for 6 editors, all driving the same CLI.
One command, or your editor.
Linux, macOS or Windows. Sign in with a link sent to your email.
Editors also on Windsurf and VSCodium via Open VSX. Every connector needs the byteask CLI on your PATH.
$ curl -fsSL https://code.byteask.ai/install.sh | shYour code stays yours.
Zero-retention by design. Your machine carries a short-lived token and nothing more.
Zero data retention
Your prompts and code are processed to answer the request, then dropped. Nothing is kept.
Not used to train models
Your repositories are not used to train any model. Ours or anyone's.
Passwordless sign-in
A signed magic link logs you in. No password to manage, and nothing to paste or leak.
The questions that decide it
Why use ByteAsk instead of Claude Code, Cursor or Codex?
Why can another agent not just run gdb on my process?
Do I have to use your models?
Does it count against my plan if I run my own model?
Can it invent a register offset or a rule number?
Which editors does it work in?
Install ByteAsk.
Writes the change, then proves it compiles, runs and passes.
$ curl -fsSL https://code.byteask.ai/install.sh | sh