Cursor SDK로 프로그래밍 방식의 에이전트 만들기

Cursor를 구동하는 동일한 런타임, 하네스, 모델로 에이전트를 만들 수 있도록 Cursor SDK를 소개합니다.

Cursor 데스크톱 앱, CLI, 웹 앱에서 실행되는 에이전트를 이제 몇 줄의 TypeScript만으로 사용할 수 있습니다. 로컬 머신에서 실행하거나, 전용 VM이 있는 Cursor 클라우드에서 어떤 프런티어 모델로든 실행할 수 있습니다.

시작하려면 npm install @cursor/sdk를 실행하세요. Cursor의 기본 /sdk 스킬을 사용해 개발을 시작하는 데 도움을 받을 수도 있습니다.

import { Agent } from "@cursor/sdk";

const agent = await Agent.create({
  apiKey: process.env.CURSOR_API_KEY!,
  model: { id: "composer-2" },
  local: { cwd: process.cwd() },
});

const run = await agent.send("Summarize what this repository does");

for await (const event of run.stream()) {
  console.log(event);
}

몇 가지 샘플 프로젝트를 만들었으며, 공개 repo에서 확인할 수 있습니다. 포크한 뒤 각자의 사용 사례에 맞게 확장해 보세요.

Cursor SDK는 이제 모든 사용자가 공개 베타로 이용할 수 있으며, 표준 토큰 기반 사용량 요금제에 따라 과금됩니다. 자세한 내용은 공지사항문서에서 확인하세요.

  • 후속 작업, 상태, 스트리밍, 취소가 이제 모두 실행 단위로 관리되도록, 지속형 에이전트와 프롬프트별 실행을 중심으로 API를 개편했습니다.
  • SSE 이벤트 기반의 실행 스트리밍을 정식 지원하고, Last-Event-ID를 통한 재연결 지원과 더 명확한 종료 상태를 추가했습니다.
  • 보관, 보관 해제, 영구 삭제를 포함한 명시적인 에이전트 수명 주기 제어를 추가했습니다.
  • 구조화된 오류 코드, items 목록 응답, 분리된 agent / run 객체를 포함해 v1 응답 및 오류 형식을 표준화했습니다.

멀티태스킹, 워크트리, 멀티 루트 워크스페이스

이번 릴리스에서는 비동기 하위 에이전트를 활용해 여러 작업을 동시에 처리하는 새로운 방식을 도입했으며, 워크트리 사용성을 개선하고 여러 repo에 걸쳐 변경할 수 있도록 멀티 루트 워크스페이스도 추가했습니다.

Agents Window에서 멀티태스킹하기

/multitask를 사용하면 요청을 대기열에 추가하는 대신 Cursor가 비동기 하위 에이전트를 실행해 병렬로 처리합니다. 또한 더 큰 작업을 더 작은 단위로 나눠 여러 비동기 하위 에이전트가 동시에 처리하게 할 수 있습니다.

이미 대기열에 메시지가 있다면, 현재 실행이 끝날 때까지 기다리는 대신 해당 메시지에 대해 Cursor에 멀티태스킹을 요청할 수도 있습니다.

Agents Window의 워크트리

Agents Window에 새롭고 개선된 워크트리가 추가되었습니다.

서로 다른 브랜치에서 격리된 작업을 백그라운드에서 실행하세요. 변경 사항을 테스트할 준비가 되면 클릭 한 번으로 원하는 브랜치를 로컬 포그라운드로 가져올 수 있습니다.

Agents Window의 멀티 루트 워크스페이스

이제 하나의 에이전트 세션에서 여러 폴더로 구성된 재사용 가능한 워크스페이스를 대상으로 사용할 수 있습니다.

덕분에 Cursor는 프런트엔드, 백엔드, 공유 라이브러리 전반에 걸쳐 여러 repo에 걸친 변경을 수행할 수 있으며, repo 사이를 오갈 때마다 에이전트 대상을 다시 지정할 필요가 없습니다.

캔버스

이제 Cursor는 인터랙티브 캔버스를 만들어 응답할 수 있습니다.

이러한 시각화에는 표, 박스, 다이어그램, 차트 같은 기본 제공 컴포넌트로 만든 대시보드와 맞춤형 인터페이스는 물론, diff와 할 일 목록 같은 기존 Cursor 컴포넌트도 포함될 수 있습니다.

Agents Window에서 캔버스는 터미널, 브라우저, 소스 제어와 함께 사이드 패널에 유지되는 영속적 아티팩트입니다.

Cursor 3.1의 Agents Window 또는 에디터에서 직접 사용해 보세요. 자세한 내용은 공지 글에서 읽어보세요.

CLI Debug Mode 및 /btw 지원

터미널에서 에이전트와 작업할 때 더 편리하게 사용할 수 있도록 Cursor CLI에 여러 사용성 개선을 배포했습니다.

CLI의 Debug Mode

재현하기 어렵거나 이해하기 까다로운 버그의 근본 원인을 찾아 수정하려면 /debug를 사용하세요. Debug Mode에서는 Cursor가 가설을 세우고, 로그 구문을 추가하며, 런타임 정보를 활용해 문제를 정확히 짚어낸 뒤 필요한 부분만 정밀하게 수정합니다.

CLI에서 /btw 지원

에이전트의 주요 작업 흐름을 방해하지 않고 짧게 곁가지 질문을 할 수 있습니다. /btw를 사용하면 현재 실행을 멈추지 않고도 Cursor가 적용 중인 변경 사항에 대해 설명을 들을 수 있습니다.

CLI의 설정 메뉴

/config는 CLI 내에서 대화형 설정 패널을 열며, 여기서 모델 선택, 기본값, 런타임 환경설정 등 동작 방식을 확인하고 변경할 수 있습니다.

또한 /update-cli-config 스킬을 사용해 Cursor에 설정 변경을 대신 적용해 달라고 요청할 수도 있습니다.

CLI의 사용자 지정 상태 표시줄

/statusline을 사용해 상태 표시줄을 사용자 지정하면 현재 모드, 브랜치, 환경, 활성 작업 힌트, 기타 세션 메타데이터를 비롯해 중요하게 확인하고 싶은 세션 및 런타임 신호를 표시할 수 있습니다.

  • 이제 프롬프트를 먼저 지우지 않아도 어디서든 모델 선택기를 열어 모델을 전환할 수 있습니다.
  • Cursor가 auto-run을 세 번 연속으로 활성화한 것을 감지하면, 끝없는 승인 루프를 피할 수 있도록 이제 auto-run을 켜도록 먼저 제안합니다.
  • 이제 AskQuestion 도구와 Debug Mode가 일반 텍스트 응답도 더 매끄럽게 처리합니다.
  • 이제 클립보드에서 이미지 붙여넣기를 지원하며, 기본 붙여넣기 기능이 없는 일부 터미널에서의 Ctrl+V도 포함됩니다.
  • 이제 바닥글에 현재 작업 디렉터리, 워크트리, 브랜치가 표시됩니다.

  • 이제 Ctrl+Z를 사용해 CLI를 안정적으로 백그라운드로 보낼 수 있습니다.
  • 이제 auto-run이 Debug Mode와 플랜 모드 같은 다른 모드에서도 동작합니다.
  • CLI를 종료한 후에도 백그라운드 shell process가 계속 실행될 수 있던 문제를 수정했습니다.
  • slash command 처리 및 매칭 문제를 수정했습니다.
  • Cmd+Delete, Vim keybindings, Ctrl 수정자 조합의 키보드 처리 문제를 수정했습니다.

Agents Window의 타일형 레이아웃과 업그레이드된 음성 입력

이번 릴리스에서는 Cursor 3의 일부로 Agents Window 인터페이스를 개선했습니다.

타일형 레이아웃

현재 보기를 여러 창으로 나누어 여러 에이전트를 병렬로 실행하고 관리하세요. 타일형 레이아웃을 사용하면 탭 사이를 오갈 필요 없이 멀티태스킹이 쉬워지고, 여러 에이전트의 결과를 비교하기도 더 편리합니다.

창을 확대해 특정 대화에 집중하고, 에이전트를 타일로 드래그해 배치하고, 키바인딩으로 빠르게 탐색하고 정리하세요. 설정은 세션이 바뀌어도 유지됩니다.

업그레이드된 음성 입력

음성 입력 받아쓰기가 더 안정적이고 정확해졌습니다. 음성 전체를 녹음한 뒤 batch STT로 전사해 더 높은 품질의 음성-텍스트 변환을 제공합니다.

Ctrl+M을 길게 눌러 말할 수 있고, 녹음 중에는 파형, 타이머, 취소 및 확인 버튼 같은 제어 요소가 UI에 표시됩니다.

빈 상태에서의 브랜치 선택

이전에는 빈 상태에서 에이전트를 시작하면 보통 현재 브랜치가 기본값으로 선택되었습니다. 이제는 먼저 브랜치를 검색하고 선택한 다음, 해당 브랜치에서 바로 클라우드 Agent를 실행할 수 있습니다.

이렇게 하면 브랜치를 전환하는 추가 단계를 줄이고, 잘못된 브랜치에서 실수로 실행되는 일을 줄일 수 있습니다.

Diff에서 파일로 이동

diff에서 파일의 정확한 줄로 바로 이동할 수 있습니다. 이동한 뒤에는 에디터의 모든 기능을 활용해 직접 수정하고, Tab을 사용하고, 정의로 이동하는 등 다양한 작업을 할 수 있습니다.

파일 검색 필터

특정 파일 집합으로 코드 검색 범위를 좁히려면 "Search in Files"에서 포함/제외 필터를 사용하세요.

  • 이제 음성 입력을 처리하는 동안에도 프롬프트 버튼이 제자리에 유지됩니다.
  • 이제 플랜 탭이 파일과 동일한 문서 동작을 지원합니다. 안정적인 로딩, 수정 사항 추적, 플랜 변경 시 다시 로드, 그리고 Markdown 저장, 복사, 내보내기가 포함됩니다.
  • 이제 새 에이전트 세션은 기본적으로 선호하는 프로젝트 대상을 기준으로 시작됩니다.
  • 이제 파일 탭 이름은 다른 모든 에이전트의 탭과 전역적으로 고유하게 맞추는 대신, 현재 에이전트에 표시된 탭 내에서 해석됩니다.
  • 이제 Cmd-K에는 더 적지만 더 관련성 높은 에이전트 결과가 표시되며, 최근 일치 항목 집합(즉, 쿼리와 일치하고 최근 항목에 속하는 결과)으로 제한됩니다.
  • macOS에서는 이제 텍스트가 안티앨리어싱 처리되어 문자 가장자리가 더 선명하게 표시됩니다.
  • 이제 Design Mode에서 코멘트를 남기기 전에 UI 요소를 선택할 수 있도록 키보드로 요소 트리(위, 아래, 좌우)를 탐색할 수 있습니다.
  • 이제 Agents Window는 실제로 필요한 경우가 아니면 비용이 큰 업데이트나 가져오기를 피합니다.
  • 이제 탭을 닫을 때 파일 트리가 깨질 가능성이 줄었고, 복구도 더 빨라졌습니다.
  • SCM 보기에서 CPU/네트워크 급증과 지연을 줄이기 위해 로컬 diff 가져오기를 제한했습니다.
  • 이제 파일 트리가 변경 사항에 더 안정적으로 반응하며, 깜빡이거나 오래된 상태로 남거나 업데이트를 놓칠 가능성이 줄었습니다.
  • 이제 확장 프로그램 이벤트(예: 파일 변경, 진단 업데이트)가 각 워크스페이스별로 범위가 지정되어 프로젝트 간 간섭이 줄어듭니다.
  • 긴 채팅에서 후속 메시지를 보내기 위해 Enter를 누르면 1초 이상 멈추곤 했지만, 이제는 즉시 반응합니다.
  • 드롭 프레임을 약 87% 줄여 이제 대규모 편집도 더 부드럽게 스트리밍됩니다.

  • 긴 대화를 스크롤할 때 버벅이던 버그를 수정했습니다. 이제 큰 스레드에서도 부드럽게 동작합니다.
  • diff나 코드 블록이 많은 에이전트 대화가 깜빡이거나 멈추던 버그를 수정했습니다.