에이전트가 읽던 487KB, 54KB면 충분했다Your agent read 487 KB. 54 KB was enough.
에이전트에게 cat·grep·find·git log 대신 ctx 를 쓰게 하세요. 파일 구조와 줄번호는 남기고 나머지는 접어서, 에이전트가 읽는 출력이 84~97% 줄어듭니다.Have your agent call ctx instead of cat, grep, find and git log. It keeps the structure and line numbers, folds the rest, and your agent reads 84–97% less.
curl -fsSL https://ctx.ferrorium.com/install.sh | sh01 · Benchmark
같은 작업인데 읽을 양은 84~97% 적습니다Same task, 84–97% less to read
기존 명령과 ctx 로 같은 작업을 돌리고 출력 바이트를 쟀습니다. 네 작업 모두 84.2~96.6% 줄었고, 에이전트가 읽는 토큰도 그만큼 줄어듭니다.We ran the same task with the standard command and with ctx, then counted output bytes. All four shrank by 84.2–96.6%, and so does what your agent has to read.
| ctx | 기존 명령Standard | 기존 출력Before | ctx 출력ctx | 비율Ratio | 감소Change |
|---|---|---|---|---|---|
ctx grep | grep -rn | 487,192 B | 53,762 B | −89.0% | |
ctx outline | cat -n | 190,645 B | 20,947 B | −89.0% | |
ctx map | find | 20,705 B | 705 B | −96.6% | |
ctx brief | git status + log | 9,231 B | 1,460 B | −84.2% |
02 · Before / After
왼쪽을 전부 읽을 필요가 있었을까요?Did it really need to read all of the left side?
왼쪽은 기존 명령, 오른쪽은 ctx 가 실제로 낸 출력의 앞부분입니다. ctx 는 파일별로 묶고 반복을 접은 뒤, 몇 줄을 뺐는지 숫자로 남깁니다.Left is the standard command, right is ctx. Real output, first lines only. ctx groups by file, folds repeats and tells you exactly how much it left out.
src/learn/detector.rs:19: pub fn as_str(&self) -> &str {
src/learn/detector.rs:85:pub fn is_command_error(is_error: bool, output: &str) -> bool {
src/learn/detector.rs:106:pub fn classify_error(output: &str) -> ErrorType {
src/learn/detector.rs:133:pub fn extract_base_command(cmd: &str) -> String {
src/learn/detector.rs:154:pub fn command_similarity(a: &str, b: &str) -> f64 {
src/learn/detector.rs:191:fn is_tdd_cycle_error(error_type: &ErrorType, output: &str) -> bool {
src/learn/detector.rs:208:fn differs_only_by_path(a: &str, b: &str) -> bool {
src/learn/detector.rs:222:pub fn find_corrections(commands: &[CommandExecution]) -> Vec<CorrectionPair> {
src/learn/detector.rs:290:fn extract_diff_token(wrong: &str, right: &str) -> String {
src/learn/detector.rs:312:pub fn deduplicate_corrections(pairs: Vec<CorrectionPair>) -> Vec<CorrectionRule> {── src/main.rs (103 hits)
1518| fn run_bunx_tool(args: &[String], verbose: u8, skip_env: bool) -> Result<i32> {
1531| fn configured_awareness_level() -> core::config::AwarenessLevel {
1545| fn run_fallback(parse_error: clap::Error) -> Result<i32> {
1729| fn shell_split(input: &str) -> Vec<String> {
1733| fn build_k8s_namespace_args(namespace: Option<String>, all: bool) -> Vec<String> {
1744| fn build_k8s_logs_args(pod: String, container: Option<String>) -> Vec<String> {
1765| fn pnpm_global_flags(recursive: bool, workspace_root: bool) -> Vec<String> {
1777| fn merge_pnpm_args(
… +95 more
── src/analytics/ccusage.rs (13 hits)
94| fn binary_exists() -> bool { 1 mod analytics;
2 mod cmds;
3 mod core;
4 mod discover;
5 mod hooks;
6 mod learn;
7 mod parser;
8
9 // Re-export command modules for routing
10 use cmds::cloud::{aws_cmd, container, curl_cmd, psql_cmd, wget_cmd};
11 use cmds::dotnet::{binlog, dotnet_cmd, dotnet_format_report, dotnet_trx};
12 use cmds::git::{diff_cmd, gh_cmd, git_cmd, glab_cmd, gt_cmd};
13 use cmds::go::{go_cmd, golangci_cmd};
14 use cmds::js::{== src/main.rs (4613 lines, 본문 생략) ==
1| mod analytics;
2| mod cmds;
3| mod core;
4| mod discover;
5| mod hooks;
6| mod learn;
7| mod parser;
10| use cmds::cloud::{aws_cmd, container, curl_cmd, psql_cmd, wget_cmd};
11| use cmds::dotnet::{binlog, dotnet_cmd, dotnet_format_report, dotnet_trx};
12| use cmds::git::{diff_cmd, gh_cmd, git_cmd, glab_cmd, gt_cmd};
13| use cmds::go::{go_cmd, golangci_cmd};
14| use cmds::js::{
18| use cmds::jvm::{gradlew_cmd, mvn_cmd};./.git-blame-ignore-revs ./Cargo.toml ./README_ja.md ./rustfmt.toml ./LICENSE ./openclaw/openclaw.plugin.json ./openclaw/README.md ./openclaw/package.json ./openclaw/index.ts ./CHANGELOG.md ./.semgrep.yml ./install.sh
582 files ext: .rs×156 .txt×153 .md×116 .toml×66 .sh×20 .json×18 .java×15 .ts×9 .yml×8 .xml×7 files KB dir 13 742 ./src/hooks 7 726 ./src/cmds/git 20 599 ./src/core 7 413 ./src/discover 19 377 ./src/cmds/system 26 324 . 4 309 ./src/cmds/jvm 72 290 ./tests/fixtures 24 219 ./tests
세 데모 모두 rtk-ai/rtk 태그 dev-0.50.1-rc.456 의 저장소 루트에서 실행했습니다. 바이트 수는 전체 출력을 wc -c 로 잰 값입니다.All three ran at the root of rtk-ai/rtk, tag dev-0.50.1-rc.456. Byte counts are wc -c of the full output.
03 · Commands
손에 익은 명령 여덟 개, 이름만 바뀝니다Eight commands you know, new names
에이전트가 이미 쓰는 탐색 명령을 하나씩 바꿔 줍니다. 플래그도 거의 그대로라 새로 익힐 게 없습니다.Each one replaces a command your agent already runs. The flags look the same, so there is nothing new to learn.
ctx outline
본문은 접고 함수·타입 시그니처만 줄번호와 함께 보여 줍니다. 줄번호가 건너뛴 자리가 생략한 구간입니다.Signatures with line numbers. Bodies are elided, and gaps show as line jumps.
대체replaces cat -n기능 제안Suggest a featurectx grep
결과를 파일별로 묶고, 같은 줄은 접고, 파일마다 상한을 둡니다. -E -i -w -C -l -e 를 지원하고 기본은 리터럴 검색입니다.Grouped by file, duplicate lines folded, per-file cap. Supports -E -i -w -C -l -e; literal by default.
대체replaces grep -rn · rg기능 제안Suggest a featurectx read
여러 파일의 줄 범위를 한 번의 호출로 읽습니다.Read line ranges from many files in one call.
대체replaces sed -n A,Bp기능 제안Suggest a featurectx def
심볼 이름만 주면 정의부터 블록 끝까지 한 번에 꺼냅니다.A symbol's definition through the end of its block.
대체replaces grep + read기능 제안Suggest a featurectx map
확장자 분포와 용량이 큰 디렉터리를 보여 줍니다. 여러 루트를 한 번에 넘겨도 됩니다.Extension histogram and largest directories, for several roots at once.
대체replaces find · ls -R기능 제안Suggest a featurectx brief
세션을 시작할 때 브랜치, 변경 파일, 최근 커밋, 파일 분포를 한 화면에 요약합니다.One screen at session start: branch, changed files, recent commits, file mix.
대체replaces git status + log + ls기능 제안Suggest a featurectx wrap
빌드와 테스트를 대신 실행하고 출력만 압축합니다. 종료 코드는 그대로 돌려줍니다.Runs a build or test, compresses the output, keeps the exit code.
대체replaces cmd | tail기능 제안Suggest a featurectx web · fetch
Brave와 Bing 결과를 합쳐 검색하고, 페이지는 본문만 마크다운으로 가져옵니다. API 키가 필요 없습니다.Metasearch over Brave and Bing, plus readable page bodies as markdown. No API key.
대체replaces 웹 검색 · 페이지 읽기기능 제안Suggest a feature
04 · Setup
에이전트에 붙이는 데 3분이면 됩니다Three minutes to wire it in
설치하고 지침 파일에 규칙 몇 줄을 붙여 넣으면 끝입니다. 팀 전체에 깔고 싶다면 도입 문의를 남겨 주세요.Install it, paste a few lines into your agent instructions, and you are done. Rolling it out to a whole team? Ask us.
팀/기업 도입 문의Team adoption
- 01
설치Install
curl -fsSL https://ctx.ferrorium.com/install.sh | sh를 실행합니다. 기본 경로는~/.local/bin/ctx입니다.Runcurl -fsSL https://ctx.ferrorium.com/install.sh | sh. Installs to~/.local/bin/ctx. - 02
지침 파일에 규칙 추가Add rules to your agent file
CLAUDE.md 나 AGENTS.md 에 오른쪽 대체 규칙을 그대로 붙여 넣습니다.Paste the mapping on the right into CLAUDE.md or AGENTS.md.
- 03
평소처럼 작업Work as usual
에이전트가 탐색할 때 ctx 를 부르고, 빌드·테스트는
ctx wrap으로 실행합니다.The agent calls ctx while exploring and runs builds throughctx wrap.
## Search & Read - cat -n → ctx outline <file> - sed -n A,Bp → ctx read f1 A-B f2 A-B - grep / rg → ctx grep <pat> <ROOT> - find → ctx map <ROOT> - session start → ctx brief <ROOT> - build / test → ctx wrap -- <cmd> - web search → ctx web "<query>" - read a page → ctx fetch <url> Batch many files and patterns into one call.
05 · Download
스크립트 대신 파일로 받고 싶다면Rather grab the file yourself?
ctx 0.1.0 빌드를 그대로 올려 두었습니다. 압축을 풀고 ctx 를 PATH 에 두면 됩니다. 설치 스크립트도 같은 파일을 받아 SHA-256 을 검증합니다.Prebuilt ctx 0.1.0. Extract and put ctx on your PATH. The install script fetches the same files and verifies SHA-256.
| 플랫폼Platform | 파일File | 크기Size | 받기Get |
|---|---|---|---|
| macOS Apple Siliconaarch64-apple-darwin | ctx-aarch64-apple-darwin.tar.gzsha256 c0bccbd9e01f9ca3… | 0.4 MB | 다운로드Download.sha256 |
| macOS Intelx86_64-apple-darwin | ctx-x86_64-apple-darwin.tar.gzsha256 ecc96e852a412f0a… | 0.4 MB | 다운로드Download.sha256 |
| Linux x86_64x86_64-unknown-linux-musl | ctx-x86_64-unknown-linux-musl.tar.gzsha256 778f61b16b5d1c0c… | 0.5 MB | 다운로드Download.sha256 |
| Linux arm64aarch64-unknown-linux-musl | ctx-aarch64-unknown-linux-musl.tar.gzsha256 95dbbc0631756895… | 0.4 MB | 다운로드Download.sha256 |
shasum -a 256 -c ctx-<target>.tar.gz.sha256https://ctx.ferrorium.com/dl/latest/ctx-<target>.tar.gz06 · FAQ
설치하다 막히면 여기부터 보세요Stuck? Start here
여기 없는 문제가 생기거나 출력이 이상하면 버그로 알려 주세요.Not covered here, or the output looks wrong? Tell us.
버그 신고Report a bugctx 는 어떻게 설치하나요?How do I install ctx?
curl -fsSL https://ctx.ferrorium.com/install.sh | sh 한 줄을 실행하면 됩니다. 스크립트가 OS·CPU 를 감지해 맞는 바이너리를 받고, SHA-256 을 검증한 뒤 ~/.local/bin/ctx 에 설치합니다. 설치가 끝나면 ctx --version 으로 확인하세요.Run curl -fsSL https://ctx.ferrorium.com/install.sh | sh. The script detects your OS and CPU, downloads the matching binary, verifies SHA-256 and installs to ~/.local/bin/ctx. Check with ctx --version.설치했는데 ctx: command not found 가 나옵니다.I get “ctx: command not found” after installing.
~/.local/bin 이 PATH 에 없어서입니다. 설치 스크립트가 마지막에 안내하는 대로 셸 설정 파일(~/.zshrc 또는 ~/.bashrc)에 export PATH="$HOME/.local/bin:$PATH" 를 추가하고 새 터미널을 여세요.~/.local/bin is not on your PATH. Add export PATH="$HOME/.local/bin:$PATH" to ~/.zshrc or ~/.bashrc and open a new terminal.설치 위치나 버전을 바꿀 수 있나요?Can I change the install directory or version?
CTX_INSTALL_DIR 은 설치 디렉터리(기본 ~/.local/bin), CTX_VERSION 은 버전(기본 latest, 예: v0.1.0)입니다. 예: curl -fsSL https://ctx.ferrorium.com/install.sh | CTX_VERSION=v0.1.0 CTX_INSTALL_DIR=/usr/local/bin shYes. CTX_INSTALL_DIR sets the directory (default ~/.local/bin) and CTX_VERSION pins a version (default latest, e.g. v0.1.0). Example: curl -fsSL https://ctx.ferrorium.com/install.sh | CTX_VERSION=v0.1.0 CTX_INSTALL_DIR=/usr/local/bin sh스크립트를 실행하기 전에 내용을 확인할 수 있나요?Can I read the script before running it?
install.sh 는 40줄 남짓한 POSIX sh 스크립트입니다. 직접 받으려면 아래 다운로드 표에서 tar.gz 와 .sha256 을 받아 shasum -a 256 -c 로 검증한 뒤 압축을 풀어 PATH 에 두면 됩니다.Yes. install.sh is a short POSIX sh script. Or download the tar.gz and .sha256 from the table below, verify with shasum -a 256 -c, extract and put ctx on your PATH.어떤 OS 를 지원하나요? Windows 는요?Which platforms are supported? Windows?
업데이트와 삭제는 어떻게 하나요?How do I update or uninstall?
rm ~/.local/bin/ctxRe-run the install command to update. To uninstall, delete the single binary: rm ~/.local/bin/ctx어떤 에이전트에서 쓰나요?Which agents does it work with?
출력을 줄이면 정보가 빠지지 않나요?Does it drop information?
절감 수치는 어떻게 쟀나요?How was the benchmark measured?
비용과 라이선스는?Cost and license?
07 · Apply
써 보고 할 말이 생기면 알려 주세요Tried it? Tell us what you think
팀 도입, 기능 제안, 버그 신고, 새 버전 알림 모두 이 폼 하나로 받습니다. 영업일 2일 안에 메일로 답장합니다.One form for team adoption, feature ideas, bug reports and release alerts. We reply by email within two business days.
다음 세션부터, 에이전트가 덜 읽게From your next session, your agent reads less
설치 한 줄, 지침 파일 몇 줄이면 됩니다. 무료입니다.One install line and a few lines of instructions. Free.
curl -fsSL https://ctx.ferrorium.com/install.sh | sh