
OpenArc는 함수 타입과 의도, 예시를 바탕으로 로컬 모델이 TypeScript 함수 본문을 만들게 하고, 검증을 통과한 코드만 프로젝트에 반영하는 도구다. 제작자 설명에 따르면 모델은 함수 하나에 필요한 맥락만 받고, 기존에 직접 수정한 코드는 덮어쓰지 못한다.
사용자는 함수의 계약을 정의한다. OpenArc는 모델이 반환한 본문을 TypeScript 컴파일러(tsc), 정적 규칙, 예시를 이용해 샌드박스에서 검증한다. 선택적으로 calls 허용 목록을 지정해 함수가 호출할 수 있는 함수를 제한할 수 있다. 예시가 실제로 실행돼야 해당 코드 영역을 검증된 것으로 취급하며, 통과한 본문만 프로젝트에 삽입한다.
import * as arc from "open-arc";
type NormalizeTitle = (title: string) => string;
export const normalizeTitleSpec = arc.defineRegion<NormalizeTitle>({
id: "tasks.normalizeTitle",
intent: "Trim, collapse internal whitespace to one space, capitalize the first letter.",
examples: [
{ args: [" buy milk "], expected: "Buy milk" },
{ args: [" "], expected: "" },
],
});
npm에서 open-arc를 설치한다. 실행 명령은 openarc다.
npm i -D open-arc && npx openarc init
npx openarc scaffold && npx openarc compile
npx openarc watch # or keep it running: recompiles regions as you save, one at a time
OpenArc는 Linux에서 bwrap과 prlimit, Node ≥ 23.6을 요구한다. 모델은 Ollama를 통한 로컬 모델이나 API로 사용할 수 있다. API는 OpenAI 호환 방식(OpenAI, OpenRouter, Groq, vLLM 등) 또는 Anthropic을 지원한다. 키는 openarc.config.json에 지정한 환경 변수에서 읽는다. 자세한 내용은 설정 문서, 위키, 명세에서 확인할 수 있다.
저장소에는 규범 명세인 SPEC-phase0.md(v0.3), OpenArc로 작성한 자체 호스팅 프로젝트 selfhost/, npm 패키지를 빌드하는 부트스트랩 컴파일러 stage0/, 예제 프로젝트 examples/demo/, 위키 문서 docs/wiki/가 포함돼 있다. 라이선스는 MIT다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요