<h1 align="center">ByteAsk CLI</h1>
<p align="center">터미널을 위한 AI 코딩 에이전트이며, C 및 C++ 작업을 위한 빌드(build), 디버그(debug), 정제(sanitize), 프로파일링(profile) 도구를 제공합니다.</p>
<p align="center">
<a href="https://github.com/ByteAsk/cli/releases/latest"><img alt="Latest release" src="https://img.shields.io/github/v/release/ByteAsk/cli"></a>
<a href="LICENSE"><img alt="License: Apache-2.0" src="https://img.shields.io/badge/license-Apache--2.0-blue"></a>
</p>
ByteAsk CLI는 OpenAI Codex CLI의 포크(fork) 버전입니다. 이 도구는 Codex의 터미널 에이전트 기능을 유지하면서, C 및 C++ 프로젝트를 위한 네이티브 도구, 이메일로 로그인하는 호스팅 모델 게이트웨이, 자체 제공자 키 및 셀프-호스팅 모델 지원, 그리고 선택적으로 호스팅된 코드 인덱스인 ByteAsk Context에 연결하는 기능을 추가했습니다.
설치(Install)
macOS 및 Linux
curl -fsSL https://code.byteask.ai/install.sh | sh
Windows (PowerShell)
irm https://code.byteask.ai/install.ps1 | iex
pip
설치 프로그램은 이 저장소의 [릴리스(releases)]에서 사용자의 플랫폼에 맞는 엔진을 다운로드하고, 게시된 SHA256SUMS와 비교합니다. 지원되는 플랫폼: Linux x86_64 및 arm64, Apple silicon용 macOS, Windows x86_64.
릴리스 바이너리 중 v0.2.4까지는 소스 코드가 공개되기 이전에 빌드되었으며, 이 저장소에는 출판을 위해 정리된 해당 소스가 보관되어 있습니다. 소스에서 빌드하려면 docs/byteask/building.md를 참조하십시오.
빠른 시작(Quick start)
최초 실행 시, ByteAsk는 모델을 어떻게 실행할지 묻습니다:
- ByteAsk 계정: 이메일 주소로 로그인하고; 모델은 ByteAsk 게이트웨이를 통해 실행됩니다.
- 자체 제공자 키: OpenAI, Anthropic 또는 Gemini; 요청은 사용자의 장치에서 해당 제공자(provider)에게 전송됩니다.
- 자체 호스팅 모델: vLLM이나 Ollama와 같은 모든 OpenAI 호환 엔드포인트입니다.
작업을 설명합니다. ByteAsk는 코드를 읽고 샌드박스에서 명령을 실행하며, 승인을 위해 각 변경 사항을 보여줍니다.
사용법 (Usage)
byteask start an interactive session
byteask "<프롬프트>" start with a prompt
byteask exec "<프롬프트>" one answer, no UI, for scripts and CI
...
일반 옵션: -m <모델>, --effort <low|medium|high|xhigh>, -C <디렉토리>. 전체 목록은 byteask --help를 실행하고, 예시는 docs/byteask/usage.md에서 확인하세요.
ByteAsk는 C 또는 C++ 프로젝트를 감지하면, 에이전트가 코드에 호출할 수 있는 도구를 추가합니다. 예를 들면:
- 프로젝트 자체 빌드 시스템을 사용하여 빌드 및 테스트를 수행하고, 변경 사항이 영향을 미치는 테스트를 선택합니다.
- clang-tidy와 cppcheck를 실행하고 컴파일 데이터베이스(compilation database)를 읽습니다.
- AddressSanitizer, UndefinedBehaviorSanitizer, ThreadSanitizer 빌드를 실행합니다.
- 핵심 파일(core files)을 포함하여 gdb 또는 lldb로 디버깅하며, 이미 열려 있는 gdb 세션에 참여합니다.
- Linux에서 rr을 사용하여 기록 및 재생합니다.
- perf로 프로파일링하고 noise 체크를 통해 벤치마크를 실행합니다.
- 구조체 레이아웃과 패딩(padding)을 보여주고, 스택 트레이스를 기호화하며(symbolize), Compiler Explorer에서 컴파일러 출력을 조회합니다.
각 도구는 실행한 명령과 발견한 내용을 보고합니다.
설정 (Configuration)
설정은 ~/.byteask/config.toml에 있습니다. 형식은 Codex CLI의 설정을 따르며, ByteAsk에서 추가된 내용은 docs/byteask/configuration.md에 문서화되어 있습니다.
ByteAsk가 전송하는 것 (What ByteAsk sends)
- ByteAsk 계정으로 로그인한 경우: 에이전트가 보내는 코드 컨텍스트를 포함하여 요청은 ByteAsk 게이트웨이로 전송되며, 이곳에서 모델 제공업체(model provider)로 전달됩니다.
- 사용자 자체 키 또는 사용자 호스팅 모델의 경우: 요청은 사용자의 기기에서 해당 제공업체로 직접 전송됩니다. ByteAsk는 매 턴마다 사용 기록(제공업체, 모델 및 토큰 수; 절대 키나 프롬프트가 아님)을 받습니다.
- 설치 (Install): 설치 프로그램은 자신이 설치된 플랫폼을 보고합니다.
- 업데이트 확인 (Update check): 런처는
code.byteask.ai에 최신 버전을 요청합니다.
이 저장소의 런처는 BYTEASK_NO_TELEMETRY=1을 인식하여 설치 보고서와 사용 기록을 비활성화합니다. 다음 릴리스에서 설치된 복사본에 도달할 것입니다. 개인정보 보호정책은 호스팅 서비스가 요청을 어떻게 처리하는지 설명합니다.
Codex CLI와의 관계 (Relationship to Codex CLI)
codex-rs/ 아래의 엔진은 Codex CLI의 Rust 워크스페이스입니다. ByteAsk 자체 코드는 주로 codex-rs/ext/에 있으며, 업스트림 파일의 변경 사항도 UPSTREAM.md에 모두 나열되어 있습니다. 런처(byteask, byteask.ps1)와 설치 프로그램(install.sh, install.ps1)은 ByteAsk가 담당합니다. 저희는 업스트림 안정화 릴리스를 정기적으로 병합합니다. 병합이 작게 유지되도록 codex-cli/, sdk/ 및 업스트림의 docs/ 디렉토리는 그대로 유지되며, 이들로부터 아무것도 게시되지 않습니다.
기여 (Contributing)
버그 보고와 풀 리퀘스트(pull requests)를 환영합니다. 먼저 CONTRIBUTING.md를 읽어주십시오. 참여하는 모든 사람은 Code of Conduct를 따릅니다. 보안 문제는 SECURITY.md에 설명된 대로 비공개로 보고하십시오.
라이선스 (License)
Apache License 2.0. LICENSE 및 NOTICE를 참조하십시오. 타사 구성 요소는 THIRD_PARTY_NOTICES.md에 나열되어 있습니다.