gakonst/nanocodex

Building blocks for frontier OpenAI agents in Rust. Nanocodex empowers you with Codex-level performance anywhere.

Nanocodex – OpenAI 기반 코드 어시스턴트를 위한 라이브러리 우선 SDK

무엇인가요 – Nanocodex는 헤드리스 Rust 라이브러리이며, JavaScript/Node, 브라우저, Python용 바인딩을 제공합니다. gpt-5.6-sol 시리즈를 위한 OpenAI Responses 상호작용 루프를 완전히 구현합니다. 애플리케이션에서 다시 구현할 필요 없이, 프롬프트 순서, 도구 호출, 코드 실행, 하위 프로세스 정리, 스냅샷, 분기 등 라이브러리가 전체 라이프사이클을 관리하는 임베디드 코드 어시스턴트를 제공합니다.

왜 중요한가요 – 대규모 언어 모델 기반의 신뢰할 수 있는 "코드 어시스턴트"를 구축하려면 일반적으로 다음과 같은 요소들을 조합해야 합니다:

  • 프롬프트 순서 큐
  • 모델에 대한 지속적인 WebSocket 연결
  • 재시도/압축 로직
  • 도구 실행 사전 환경
  • 세션 기록, 스냅샷, 하위 프로세스의 정리된 종료

Nanocodex는 이 모든 것을 한 번만 구현하고, 매우 작고 타입 안정적인 API를 제공합니다. 사용자는 오케스트레이션 런타임을 다시 구현하는 대신, 제품 UI, 지속성, 또는 사용자 정의 도구에 집중할 수 있습니다.


핵심 기능

기능 제공되는 기능
타입 안정적인 턴 처리 prompt()Turn 미래를 반환하며, 턴은 타입화된 이벤트 스트림(예: 도구 호출, 사용 통계)도 선택적으로 제공합니다.
보존된 세션 기록 어시스턴트는 완료된 응답의 권위 있는 FIFO 기록을 유지하며, 새로운 프롬프트는 차이만 전달됩니다.
내장 도구 생태계 워크스페이스 도구(파일 작업, 쉘 실행, 패치 적용, 이미지 보기), 웹 검색, 이미지 생성, 그리고 코드 모드 JavaScript 사전 환경(모델이 임의의 JS를 실행하고 await tools.<name>(...)로 도구를 호출할 수 있음).
분기 및 스냅샷 spawn(), fork(), fork_from()를 통해 전체 프로세스 상태를 복사하지 않고도 새 어시스턴트를 생성하거나 체크포인트에서 재개할 수 있습니다.
내구성 레이어(옵션) SQLite/Postgres 백엔드를 사용하는 추가 전용 저널; 재생, 중복 제거, 충돌 안전 복구를 제공합니다.
서브 어시스턴트 가벼운 작업 트리 레지스트리로, 코드 모드에서 사용 가능한 오케스트레이션 프리미티브(spawn, wait, interrupt)를 제공합니다.
다중 호스트 지원 동일한 Rust 코어가 네이티브, WASM 워커(브라우저), PyO3(파이썬)에서 실행됩니다. JavaScript 바인딩은 Node 또는 브라우저용 Agent, Transport, Subagents를 공개합니다.
OpenAI 전용 gpt-5.6-sol 시리즈(기본값 sol, terra, luna도 지원)를 직접 지원합니다. 일반 프로바이더 추상화 없음 – 라이브러리가 Responses WebSocket 동작을 완전히 소유합니다.

언어 및 진입점

언어 패키지 / 크레이트 일반적인 진입점
Rust nanocodex (크레이트) Nanocodex::builder(OpenAi::new(...)).build()?
JavaScript / Node nanocodex npm 패키지 import { Agent, Transport } from "nanocodex/node"
브라우저 / WASM 동일한 npm 패키지 (nanocodex/browser) Agent.create({ transport: Transport.hostManaged(...), ... })
Python PyO3 웨일 (nanocodex PyPI) Nanocodex(api_key, instructions=...)

일반적인 사용 패턴 (Rust 예제)

let openai = OpenAi::new(std::env::var("OPENAI_API_KEY")?)?;
let (agent, _events) = Nanocodex::builder(openai)
    .instructions("You are a Rust coding agent.")
    .workspace(std::env::current_dir()?)
    .build()?

let turn = agent.prompt("Fix the failing parser test.").await?;
let result = turn.await?;               // typed TurnResult
println!("{}", result.final_message());
agent.shutdown().await?;

동일한 흐름은 JavaScript(turn.result()) 및 Python(agent.prompt(...).result())에서도 사용 가능합니다.


Nanocodex를 사용할 때

  • 제품 팀 – IDE 확장, CI 봇, 저코드 플랫폼을 구축하며, OpenAI 대화 루프를 다시 구현하지 않고도 신뢰할 수 있는 "코드 수정" 또는 "코드 생성" 어시스턴트가 필요할 때.
  • 연구 프로토타입 – 사용자 정의 도구, 분기, 내구성 있는 체크포인트를 실험하면서도 핵심 어시스턴트는 안정적으로 유지하고 싶을 때.
  • 풀스택 애플리케이션 – 동일한 어시스턴트가 서버(Rust/Node)와 브라우저(WASM)에서 실행되어 사용자에게 페이지 내 코드 작업 공간을 제공할 때.
  • 음성 기반 어시스턴트 – 라이브러리는 이미 음성 클라이언트를 제공하며, 자체 오디오 파이프라인을 연결해도 동일한 세션 관리 이점을 누릴 수 있습니다.

설치 빠른 시작

# Rust
cargo add nanocodex

# Node (>=22.13)
npm install nanocodex

# Python (소스 체크아웃에서)
uv venv --python 3.11 py/bindings/.venv
uv pip install -r py/bindings/requirements.txt maturin
py/bindings/.venv/bin/maturin develop --manifest-path py/bindings/Cargo.toml

또는 README에 표시된 원라인 명령어로 macOS 또는 Linux용 사전 빌드된 CLI/TUI 바이너리를 다운로드할 수 있습니다.


성숙도 및 상태

  • Crates.io 버전은 공개되었으며, Linux/macOS에서 CI 테스트 완료.
  • 핵심 어시스턴트, 내구성 레이어, 도구 크레이트는 안정적; 브라우저 전용 및 실험적 VM 크레이트는 비공개/실험적 상태.
  • 문서는 docs.rs 및 각 크레이트의 리포지토리 내 README에서 확인 가능.
  • 최소 예제, 라이프사이클, 분기, 서브어시스턴트, 브라우저, React, Vercel 워크플로우 등 참조 구현용 예제 세트 제공.

TL;DR

Nanocodex는 단일, 타입 안정적, Rust 소유의 SDK를 제공하여 OpenAI 코드 어시스턴트의 전체 라이프사이클(프롬프트 순서, 도구 실행, 분기, 스냅샷, 정리)을 처리합니다. JavaScript/Node, 브라우저, Python용 얇은 바인딩을 공개하여, 개발자가 오케스트레이션 연결 코드를 직접 작성하지 않고도 완전 기능의 코드 어시스턴트를 어떤 제품에도 임베딩할 수 있도록 합니다.

관련

  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트
  • 프로젝트