기능

슬래시 명령어

워크플로를 자동화하고 팀 관행을 표준화하기 위한 사용자 지정 슬래시 명령어를 만드세요.

시작하려면 Bob Shell에서 /를 입력하여 사용 가능한 모든 명령어를 확인하거나, .bob/commands/ 또는 ~/.bob/commands/에 마크다운 파일을 추가하여 자신만의 명령어를 만드세요.

내장 명령어

Bob Shell에는 다음과 같은 내장 슬래시 명령어가 포함되어 있습니다:

명령어별칭설명
/help사용 가능한 모든 슬래시 명령어 표시
/clear화면을 지우고 대화 기록을 초기화합니다
/condense컨텍스트 창을 지능적으로 압축하여 공간을 확보합니다
/copy대화 기록에서 항목을 클립보드에 복사합니다
/mode활성 모드 전환 (선택기 열기)
/resume이전 대화를 찾아보고 재개합니다
/settingsBob Shell 설정 보기 및 편집
/mcp구성된 MCP 서버 관리
/manage-secretsMCP 서버 구성에 사용되는 비밀값 관리
/skills프롬프트에 스킬 참조 삽입
/init현재 워크스페이스에서 Bob 초기화
/status/info세션 상태, 사용량 및 버전 정보 보기
/team팀 선택
/logs시스템 뷰어로 최신 로그 파일 열기
/docs브라우저에서 Bob Shell 문서 열기
/bug버그 신고 제출
/exit/quit, /closeCLI 종료

/manage-secrets 서브커맨드

비밀값을 사용하면 민감한 값(예: API key)을 저장하고 MCP 서버 구성에서 하드코딩 없이 참조할 수 있습니다.

서브커맨드사용법설명
set/manage-secrets set KEY VALUE비밀값 저장
list/manage-secrets list저장된 모든 비밀 키 목록 표시
rm/manage-secrets rm KEY저장된 비밀값 제거

비밀값은 ~/.bob/settings/에 암호화하여 저장되며, ${KEY} 문법을 사용하여 MCP 서버 구성에서 참조할 수 있습니다.

슬래시 명령어를 사용하는 이유

슬래시 명령어는 다음과 같은 주요 이점을 제공합니다:

  • 워크플로 자동화: 복잡한 다단계 프로세스를 단일 명령으로 변환
  • 팀 표준화: 일관된 관행을 위해 팀 전체에서 명령어 공유
  • 컨텍스트 보존: 모든 명령에 프로젝트별 컨텍스트 포함
  • 빠른 접근: 즉각적인 명령어 검색을 위한 퍼지 검색 및 자동 완성

슬래시 명령어 작동 방식

Bob Shell에서 /를 입력하면 사용 가능한 모든 명령어를 보여주는 메뉴가 나타납니다. 이 명령어는 두 가지 소스에서 제공됩니다:

명령어 유형소스목적
사용자 지정 워크플로 명령어.bob/commands/ 또는 ~/.bob/commands/특정 작업을 위한 사용자 지정 자동화
모드 명령어내장 및 사용자 지정 모드Bob의 운영 컨텍스트 전환

사용자 지정 명령어 만들기

사용자 지정 명령어는 특정 디렉토리에 마크다운 파일을 추가하여 Bob의 기능을 확장합니다:

위치범위경로
프로젝트별현재 프로젝트에서만 사용 가능워크스페이스 루트의 .bob/commands/
전역모든 프로젝트에서 사용 가능홈 디렉토리의 ~/.bob/commands/

파일 이름이 명령어 이름이 됩니다. 예를 들면:

.bob/commands/
├── review.md         → /review
├── test-api.md       → /test-api
└── deploy-check.md   → /deploy-check

명령어 이름 처리

UI를 통해 명령어를 만들 때 Bob Shell은 명령어 이름을 자동으로 처리합니다:

  • 소문자로 변환
  • 공백을 대시로 대체
  • 특수 문자 제거
  • 앞뒤 대시 제거

예시: "My Cool Command!"는 my-cool-command가 됩니다

기본 명령어 형식

마크다운 파일을 추가하여 간단한 명령어를 만드세요:

Help me review this code for security issues and suggest improvements.

프론트매터가 있는 고급 명령어

향상된 기능을 위해 프론트매터를 사용하여 메타데이터를 추가하세요:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.

프론트매터 필드

필드목적예시
description명령어 메뉴에 표시됨"Create a new API endpoint"
argument-hint예상 인수 표시"<endpoint-name> <http-method>"

도구 승인 대화 상자

Bob Shell이 도구 사용을 요청하면 승인 대화 상자가 표시됩니다. 대화 상자에는 다음 옵션이 있습니다:

옵션설명
Approve Once이 특정 도구 호출을 진행하도록 허용합니다. 이후 호출에 대해서는 다시 메시지가 표시됩니다.
Approve <group> tools for task작업의 나머지 기간 동안 동일한 도구 그룹의 모든 도구를 허용합니다. MCP 도구에는 표시되지 않습니다.
Always Allow Command for task작업의 나머지 기간 동안 특정 셸 명령어를 허용합니다.
Reject도구 호출을 거부합니다. Bob Shell이 해당 작업을 진행하지 않습니다.

도구 호출 승인 또는 거부 시 선택적 메모를 추가할 수 있습니다. 메모는 Bob Shell이 그에 맞게 동작을 조정할 수 있도록 대화 컨텍스트에 포함됩니다.

Bob Shell이 응답을 완료하기 전에 스트리밍 응답을 중단하려면 Esc를 누르세요.

Bob Shell에서의 명령어 관리

Bob Shell은 Bob IDE와 동일한 슬래시 명령어를 지원합니다. Bob Shell은 명령어 관리를 위한 전용 UI를 제공하지 않지만, 다음을 수행할 수 있습니다:

  1. 프로젝트의 .bob/commands/ 디렉토리 또는 홈 디렉토리의 ~/.bob/commands/에 명령어 파일을 수동으로 생성
  2. 텍스트 편집기로 기존 명령어 파일 편집

슬래시 명령어 사용하기

Bob Shell에서 /를 입력하면 다음 유형의 명령어를 포함하는 통합 메뉴가 표시됩니다:

  1. 통합 메뉴: 사용자 지정 명령어와 모드 전환 명령어가 함께 표시됩니다
  2. 자동 완성: 입력하여 명령어를 필터링합니다 (예: /sam을 입력하면 sample-command-name이 표시됨)
  3. 퍼지 검색: 부분 일치로도 명령어를 찾을 수 있습니다
  4. 설명 미리 보기: 메뉴에서 명령어 설명을 확인할 수 있습니다
  5. 시각적 표시: 모드 명령어는 특수 아이콘으로 사용자 지정 명령어와 구분됩니다
/mode code     Switch to Code mode
/mode ask      Switch to Ask mode
/review        Review code for security issues
/api-endpoint  <endpoint-name> <http-method>

인수 힌트

인수 힌트는 슬래시 명령어에 대한 즉각적인 도움을 제공하며, 명령어가 추가 입력을 기대할 때 어떤 정보를 제공해야 하는지 안내합니다.

/를 입력하여 명령어 메뉴를 열면 인수를 기대하는 명령어 옆에 연한 회색 힌트가 표시됩니다. 이 힌트는 명령어가 어떤 종류의 인수를 기대하는지 알려줍니다.

예를 들면:

  • /mode <mode_slug> - 힌트 <mode_slug>code 또는 debug와 같은 모드 이름을 제공해야 함을 나타냅니다
  • /api-endpoint <endpoint-name> <http-method> - 엔드포인트 이름과 HTTP 메서드가 모두 필요함을 표시합니다

명령어를 선택하면 채팅 입력창에 공백과 함께 삽입됩니다. 힌트는 삽입되지 않으며 다음에 무엇을 입력할지 안내하는 시각적 가이드 역할만 합니다. 명령어 뒤에 인수를 직접 입력해야 합니다.

사용자 지정 명령어에 인수 힌트 추가하기

프론트매터의 argument-hint 필드를 사용하여 사용자 지정 명령어에 인수 힌트를 추가할 수 있습니다:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.

이렇게 하면 명령어 메뉴에 /api-endpoint <endpoint-name> <http-method>로 표시됩니다.

인수 힌트 모범 사례

  • 구체적으로 작성: <arg>와 같은 일반적인 플레이스홀더 대신 <file-path>와 같은 설명적인 플레이스홀더를 사용하세요
  • 여러 인수 표시: 명령어에 여러 입력이 필요한 경우 모두 표시하세요: <source> <destination>
  • 일관된 형식 사용: 항상 플레이스홀더를 꺾쇠 괄호로 감싸세요: <placeholder>
  • 간결하게 유지: 힌트는 간단명료해야 합니다

인수에 대한 일반적인 질문

질문답변
인수를 제공하지 않으면 어떻게 되나요?명령어가 예상대로 작동하지 않거나 더 많은 정보를 요청할 수 있습니다. 힌트는 처음부터 올바르게 입력할 수 있도록 도와줍니다.
모든 명령어에 힌트가 있나요?아니요, 인수를 받도록 설계된 명령어만 힌트가 있습니다. 추가 입력 없이 작동하는 명령어에는 힌트가 표시되지 않습니다.
힌트를 대체하지 않고 명령어를 사용할 수 있나요?힌트 텍스트(예: <mode_slug>)는 실제 값으로 대체해야 합니다. 힌트 텍스트를 그대로 두면 명령어가 실패하거나 예상치 못한 동작이 발생할 수 있습니다.

모범 사례

명령어 이름 지정

  • 설명적이고 행동 중심적인 이름 사용
  • 이름은 간결하되 명확하게 유지
  • 여러 단어 명령어에는 하이픈 사용
  • help 또는 test와 같은 일반적인 이름 피하기
  • 참고: 이름은 자동으로 슬러그로 변환됩니다 (소문자, 특수 문자 제거)
  • .md 확장자는 필요에 따라 자동으로 추가/제거됩니다

명령어 콘텐츠

  • 명확한 지시로 시작
  • 구조화된 형식 사용 (목록, 섹션)
  • 구체적인 요구 사항 포함
  • 프로젝트 관행 참조
  • 명령어는 단일 작업에 집중

조직

  • 관련 명령어를 하위 디렉토리로 그룹화
  • 일관된 명명 패턴 사용
  • 복잡한 명령어 문서화
  • 명령어를 버전 관리
  • 프로젝트 repository에서 팀 명령어 공유

문제 해결

명령어가 표시되지 않는 경우

명령어가 메뉴에 표시되지 않는다면:

  • 파일 위치 확인: 사용자 지정 명령어 파일이 .bob/commands/ 또는 ~/.bob/commands/에 있는지 확인하세요
  • 파일 확장자 확인: 사용자 지정 명령어는 .md 파일이어야 합니다

명령어를 찾을 수 없는 경우

슬래시 명령어를 찾을 수 없을 때 LLM에는 다음이 표시됩니다:

The slash command '/unknown-command' was not found. Please check the command name and try again.

명령어 충돌

  • 사용자 지정 프로젝트 명령어는 동일한 이름의 전역 사용자 지정 명령어를 재정의합니다
  • 충돌을 피하려면 고유한 이름을 사용하세요
  • UI를 통해 중복 이름을 만들면 숫자가 추가됩니다 (예: new-command-1, new-command-2)

모드 명령어 정보

슬래시 메뉴에는 AI의 운영 모드를 근본적으로 변경하는 모드 전환 명령어 (예: /mode code, /mode ask)가 포함되어 있습니다 — 단순히 텍스트를 삽입하는 것이 아니라 전체 AI 컨텍스트를 전환합니다. 직접 만든 사용자 지정 모드도 슬래시 명령어로 표시됩니다 (예: reviewer 슬러그의 모드는 /reviewer가 됩니다). 이 모드 명령어는 사용자 지정 워크플로 명령어로 재정의할 수 없습니다.

크로스 플랫폼 호환성

슬래시 명령어는 Bob Shell과 Bob IDE 모두에서 동일하게 작동합니다. 즉:

  • 한 환경에서 만든 명령어를 다른 환경에서도 사용할 수 있습니다
  • 동일한 명령어 문법과 동작이 두 환경 모두에 적용됩니다
  • 팀이 공유하는 명령어는 팀원이 어떤 인터페이스를 사용하든 일관되게 작동합니다
이 주제는 어떤가요?