Vobuda
다운로드 작동 방식Claude Codevs Codex비교 소개 문의

부분별로 뜯어본 작동 방식

프로그램 전체를 하나로 묶는 규칙은 이것입니다. 창의 상태는 메모리에 있고, 설정은 파일에 있습니다. 아래 내용은 모두 여기서 나옵니다.

모든 것의 밑바탕에 있는 규칙

창은 탭을 담습니다. 탭은 블록을 담습니다. 블록은 터미널, 편집 중인 파일, 파일 패널, 웹 페이지, 이미지, PDF, Markdown 페이지, diff, 시스템 모니터, 설정 화면, 또는 애드온의 패널입니다. 어느 방향으로든 중첩해 분할하고, 끌고, 크기를 조절하고, 닫는 규칙이 하나이며, 새 기능마다 새 규칙이 생기지 않습니다. 모두의 것이 되기에는 너무 큰 것은 vobuda 자체 카탈로그의 애드온으로 나오며 지금까지는 Design과 Director이고, 한 번의 조작으로 통째로 설치하고 제거합니다.

이 배치는 데이터베이스에 저장되지 않습니다. 애초에 데이터베이스가 없기 때문입니다. 창이 지금 하고 있는 일은 메모리에 있고, 사용자가 결정한 내용은 파일에 있습니다. 그래서 버튼, 키, 메뉴 바, Cmd+K, 명령줄이 모두 같은 이름으로 같은 동작을 호출하며, 동작을 다르게 만들려면 거의 항상 JSON을 편집하면 됩니다.

이런 종류의 작업을 위해 만들어진 맥 최고의 터미널 에뮬레이터가 곧 속을 들여다볼 수 있는 프로그램인 이유도 여기에 있습니다. 설정이 존재한다면 그것을 담은 파일의 한 줄이 있고, 동작이 존재한다면 그것을 부를 수 있는 이름이 있습니다.

동작에 이르는 다섯 가지 방법, 그러나 같은 동작

동작이 이만큼 많으면 프로그램의 대부분은 사실상 숨어 있습니다. Cmd+K는 '이걸 해라'가 아니라 '무엇을 할 수 있나'에 답하는 길입니다.

터미널과 Claude Code 블록 위에 열린 명령 목록: 새 탭, 탭 닫기, 이 컴퓨터를 깨워 두기, 분할들과 블록 닫기가 각각 동작 이름과 단축키와 함께 있으며, 목록을 좁히는 입력란이 맨 위에 있습니다 터미널과 Claude Code 블록 위에 열린 명령 목록: 새 탭, 탭 닫기, 이 컴퓨터를 깨워 두기, 분할들과 블록 닫기가 각각 동작 이름과 단축키와 함께 있으며, 목록을 좁히는 입력란이 맨 위에 있습니다
셸과 에이전트 위에 Cmd+K로 연 명령 목록: 각 동작이 이름, 동작 이름, 단축키와 함께 나오며 타이핑으로 좁힐 수 있습니다.
  • 단축키를 대체하지 않고 가르쳐 줍니다

    모든 줄에 해당 단축키가 표시됩니다. 같은 동작 때문에 목록을 두 번 찾아본 사람은 세 번째에는 단축키를 외우게 됩니다.

  • 다섯 번째 사전이 아니다

    모든 줄은 다른 네 가지 방법과 똑같이 이름으로 동작을 실행합니다. 어떤 검사가 이 목록이 참조하는 표를, 키에 연결할 수 있는 것들에 대한 코어의 목록과 양방향으로 대조합니다. 존재하는데 여기 제공되지 않은 동작이 있으면 빌드가 실패합니다.

  • 명령줄도 같은 집합입니다

    vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log는 어느 vobuda 블록에서든 입력하며, vobuda mcp는 같은 명령을 MCP 도구로 에이전트에게 제공합니다. 스크립트용 뒷문이 아닙니다. 인터페이스 테스트가 이것을 통해 프로그램 전체를 구동하며, 그래서 믿을 수 있고, 에이전트가 창을 재배치해도 무엇을 했는지 정확히 읽을 수 있습니다.

블록, 그리고 블록이 지키는 약속

블록은 셸을 실행한 채로 탭을 옮깁니다

블록의 헤더를 잡고 탭 바의 다른 탭으로 드래그하면 그 탭에 자리 잡습니다. 같은 id, 같은 셸, 같은 폴더 그대로, 실행 중이던 것도 계속 실행됩니다. 블록이 위에 있는 동안 탭은 강조색으로 밝아집니다. 이를 위한 동작도 따로 있습니다. block.to-tab:2. 그래서 이 동작을 단축키에 넣을 수 있고, 마우스 없이도 검사가 이 버튼을 누를 수 있습니다.

크기는 기억되고, 최소 크기가 있습니다

블록마다 개별적으로 기억되며, 어떤 블록도 쓸 수 없을 만큼 좁아지지는 않습니다. 200포인트짜리 패널은 아무도 쓸 수 없는 패널입니다.

여러분의 것은 조용히 사라지지 않습니다

실행 중인 것을 닫으려면 이름을 대며 먼저 묻는데, 누군가의 작업을 한 번 잃으면 기능 하나가 벌어들이는 것보다 더 많은 신뢰를 잃기 때문입니다. 같은 이유로 프로젝트 폴더는 에이전트의 매 차례 전에 스냅샷을 찍어 한 번의 조작으로 되돌릴 수 있고, 에이전트에게 붙여 넣은 키는 에이전트가 보기 전에 차단되며, 켜 둘 수 있는 울타리는 프로젝트 밖에서 에이전트가 쓰고 지우는 것을 거절합니다.

세션은 기본으로 돌아옵니다

탭, 블록, 각 블록의 작업 폴더는 재시작 뒤에 돌아오며, 기본으로 켜져 있습니다. 일반 섹션의 스위치 하나로 끌 수 있습니다. 다른 기기에서 넘어온 세션은 열 수 있는 것을 열고 열지 못한 것을 알려 주며, 블록을 조용히 버리지 않습니다.

설정 폴더, 파일 하나하나

~/.config/vobuda 안의 모든 것은 읽기 쉬운 JSON이며, 프로그램이 실행되는 동안 계속 감시됩니다. 파일을 저장하면 창이 다시 그려집니다.

파일담긴 내용
settings.json테마, 룩, 터미널, 셸, 창, 신호: 열 개 섹션의 모든 설정
themes/*.json터미널과 창의 색상. 25개의 팔레트가 기본 제공되며, 그중 2개는 색각 이상을 위해 만들어졌습니다
looks/*.json창의 형태: 모서리, 그림자, 패널 색, 투명도. 29종 제공
skins/*.json모니터의 어떤 패널이 어떻게 그려지는지
buttons.json독: 버튼, 순서, 위치, 모양, 그리고 표시할 가치가 있는 몇 개를 위한 색상
agents.json에이전트를 어떻게 인식하고 무엇을 제공하는지
keys.json모든 단축키. 네이티브 macOS 메뉴도 이 파일 하나로 만들어집니다
workspaces/*.json프로젝트: 각각 자기 탭, 폴더, 테마, 독을 가진 창

내장 테마는 바이너리 안에 있고 폴더가 그것을 덮어쓰므로, 업데이트가 새 색을 가져와도 편집한 것은 덮어쓰지 않습니다. 폴더 전체를 하나의 아카이브로 저장해 다른 Mac에서 복원할 수 있고, Mac에서는 사본이 iCloud Drive에 기본으로 켜진 채 있으며 스위치 하나로 끌 수 있습니다.

파일 하나로 배치하는 시스템 모니터

패널 종류는 열두 가지이며, 어느 것이 보이는지는 누군가 한 번 설계한 화면이 아니라 스킨이 정합니다.

터미널 옆 블록에 열린 시스템 모니터. 기록이 있는 프로세서 부하, 모든 코어, 사용 중인 메모리, 시동 디스크의 여유 공간, 디스크 읽기와 쓰기, 네트워크 트래픽 터미널 옆 블록에 열린 시스템 모니터. 기록이 있는 프로세서 부하, 모든 코어, 사용 중인 메모리, 시동 디스크의 여유 공간, 디스크 읽기와 쓰기, 네트워크 트래픽
셸 옆에 블록으로 열린 모니터, 패널이 쌓여 있습니다: 프로세서, 코어, 메모리, 디스크, 디스크 읽기와 쓰기, 네트워크.
  • 수치는 스스로에 대해 정직합니다

    시스템이 측정이 아니라 추정한 값에는 물결표(~)가 붙고, 존재하지 않는 하드웨어는 0이 아니라 값 없음으로 표시됩니다. 개별 GPU가 없는 기기에서 GPU 패널이 0퍼센트로 표시되는 일은 없습니다.

  • 두 주소 모두, 각각에 복사 버튼이 붙어 있습니다

    주소 패널은 인터넷이 보는 주소를 먼저 알려 주고 그 아래에 이 기기가 자기 네트워크에서 가진 주소를 알려 줍니다. 패널이 화면에 있는 동안에만, 약 10분에 한 번, 아직 알려진 주소가 없을 때는 30초마다 묻고, 요청에는 기기에 대한 정보가 담기지 않습니다.

  • 다른 모든 것처럼 드래그로 순서를 바꿉니다

    모니터의 패널, 독의 버튼, 에이전트 바의 구성 요소는 모두 같은 동작으로 집어 올려 원하는 자리에 놓을 수 있습니다. 설정 행은 행의 아무 곳이 아니라 왼쪽의 손잡이로 집어 올리므로, 텍스트 필드에서 시작된 드래그가 바꾸려던 단어를 선택하는 데 방해되지 않습니다.

셸 옆에 파일이 열립니다

터미널이 보통은 다른 곳으로 보내 버리던 일입니다. 출력에 경로가 나타나고 두 줄을 고쳐야 하는데, 지금까지는 이것이 에디터로 나갔다가 셸의 맥락을 잃은 채 돌아오는 것을 뜻했습니다.

터미널 블록 옆 편집기에 열린 src/main.ts(테스트 통과)와, 프로젝트의 폴더와 파일을 크기와 함께 나열한 파일 패널 터미널 블록 옆 편집기에 열린 src/main.ts(테스트 통과)와, 프로젝트의 폴더와 파일을 크기와 함께 나열한 파일 패널
줄 번호와 색이 있는 편집기에 열린 src/main.ts. 그것을 연 셸과 파일 패널 옆에 있습니다.
  • 저장은 의도적으로 이루어집니다

    Cmd+S를 누르기 전까지는 아무것도 기록되지 않습니다. 타이핑하는 대로 저장하는 에디터는 메모 앱에서는 괜찮지만, 실행 중인 셸 옆에서는 좋지 않습니다. 이것은 단순한 키 입력이 아니라 하나의 동작이며, 그래서 여기 있는 다른 모든 것처럼 메뉴 항목, 단축키, 명령줄 항목을 함께 갖습니다.

  • 거부하는 것도 기록하는 것만큼 중요합니다

    열린 뒤 디스크에서 변경된 파일은 덮어쓰지 않습니다. 바이너리 파일을 깨진 텍스트로 보여 주지 않습니다. 폴더는 아예 열리지 않습니다. 저장하지 않은 변경 사항에는 눈에 보이는 표시가 붙고, 편집한 파일을 닫으려 하면 확인을 묻습니다.

  • 파일 찾기

    파일 패널은 현재 위치한 폴더 아래에서 이름으로 검색하며, 각 결과는 자신이 속한 상위 두 폴더를 함께 보여 줍니다. 이름만으로는 두 개의 index.ts를 구별할 수 없기 때문입니다. node_modules, .git, target 등은 건너뛰고, 8단계 또는 200개 결과에서 멈추며, 두 글자 미만에서는 아무것도 검색하지 않습니다.

화면으로서의 설정, 파일로서의 설정

일반부터 데이터와 개인정보까지 열 개 섹션과 모든 설정에 대한 검색이 있으며, 모든 설정은 직접 편집할 수 있는 파일의 한 줄입니다.

'외관'에 열린 설정 화면: 테마 목록의 끝, 룩, 창 불투명도와 최소 대비, 그리고 선택한 Accessible 테마의 접근성 표시(텍스트 대비 AAA와 색맹 구별 점수) '외관'에 열린 설정 화면: 테마 목록의 끝, 룩, 창 불투명도와 최소 대비, 그리고 선택한 Accessible 테마의 접근성 표시(텍스트 대비 AAA와 색맹 구별 점수)
테마 목록 아래의 외관: 룩, 창 불투명도, 최소 대비, 그리고 선택한 테마의 텍스트 대비와 색맹 구별 평가.
  • 설정이 블록으로 찾아옵니다

    패널을 오른쪽 클릭한다는 것은 '여기 있는 이것을 바꿔라'라는 뜻입니다. 그래서 블록 자체 메뉴에서 설정 줄을 고르면 설정 화면으로 데려가는 대신 메뉴 모서리에서 창 위로 해당 섹션이 열립니다. 다른 모든 것과 마찬가지로 동작입니다: settings.here:themes, settings.here:monitor.

  • 고르는 순간 들리는 소리

    신호음이나 터미널 벨소리를 고르면 그 자리에서 소리가 재생됩니다. 들을 수 없는 이름 목록에서 소리를 고르는 것은 그저 이름 하나를 고르는 것일 뿐입니다.

  • 재시작을 요구하는 것은 없습니다

    설정 폴더는 계속 감시되며, 여기에는 코어가 관리하는 두 가지도 포함됩니다. 단축키 파일로 만들어지는 macOS 메뉴 바, 그리고 드롭다운 창의 전역 키인데, 새 키가 등록되기 전에 이전 키가 먼저 해제되므로 둘이 동시에 응답하는 일은 없습니다. 어떤 검사가 설정 화면의 모든 안내 문구를 읽어서 '재시작'이라는 단어가 나오면 실패 처리합니다.

말하기와 듣기

둘 다 이 기기 안에서 시스템 자체의 음성 기능을 사용합니다. 오디오는 컴퓨터를 벗어나지 않습니다.

받아쓰기

Cmd+Shift+V를 누르면 말한 내용이 작업 중인 블록에 타이핑되고, 스트립에는 지금 어떤 언어로 듣고 있는지 두 글자로 표시됩니다. 받아쓴 문구는 타이핑만 될 뿐 절대 실행되지 않습니다. 음성 인식은 잘못 알아듣기 마련이고, 잘못 알아들은 명령이 스스로 실행된다면 라디오가 켜져 있었다는 이유로 무언가를 지워 버리는 프로그램이 되기 때문입니다. 문구가 명령이 아니라 메시지인 에이전트 옆에서는 스스로 전송될 수 있는데, 이는 문구가 끝나는 순간에 읽히는 설정값입니다.

답변을 소리 내어 읽어주기

Cmd+Shift+R을 누르면 에이전트의 마지막 답변을 소리 내어 읽어 주고, 다시 누르면 멈춥니다. 읽히는 것은 화면이 아니라 답변 그 자체입니다. 앞에 붙은 글머리 기호, 강조된 단어를 감싼 별표, 이름을 감싼 백틱, 박스 선, 파일 이름이면 충분한데 굳이 붙은 전체 경로 같은 것은 제거되고 그 안의 단어만 남습니다. 읽는 범위는 단어가 아니라 모양으로 경계가 정해지는데, 아래로는 에이전트의 입력 줄, 위로는 에이전트의 로고까지입니다. 에이전트의 화면 구성 요소는 버전이 나올 때마다 바뀌기 때문입니다.

계속 쓸지 말지를 가르는 작은 것들

오른쪽 버튼은 저희 것입니다

창 안 어디서든 그렇습니다. 블록 안에서는 블록 자체의 메뉴, 블록 바깥에서는 창의 메뉴, 탭 바, 독, 타일 사이의 여백까지. 모든 항목은 동작이며, 메뉴 자체도 block.menu라는 동작을 가지고 있습니다. 그래서 손으로만 닿을 수 있는 동작이 아무도 검사할 수 없는 동작이 되지는 않습니다. 시스템 메뉴를 그대로 유지하는 유일한 곳은 텍스트 필드로, 여기서는 잘라내기, 복사, 붙여넣기, 사전 기능을 제공합니다.

어디서든 폴더 열기

vobuda://open?path=/some/path는 Finder 동작, 스크립트, 다른 앱 등 어디서 호출하든 그 폴더에 탭을 엽니다. macOS에는 시스템 차원의 기본 터미널 설정이 없으므로, 이것은 지킬 수 없는 약속 대신 내놓는 정직한 버전의 그 기능입니다.

블록 안 검색

Cmd+F. 검색창은 검색 대상 블록에 속하며, 닫아도 화면은 일치 항목이 있던 위치에 그대로 남습니다.

블록을 그대로 가져가기

Cmd+Shift+X는 블록의 텍스트를 복사하며 터미널 자체에 묻는데, 그래서 페이지에 선택할 텍스트가 없는 GPU 렌더링을 켠 상태에서도 동작합니다. 블록의 그림은 Cmd+K의 두 동작, '블록 스냅샷을 클립보드로'와 '블록 스냅샷을 파일로'입니다.

숙제가 되지 않는 업데이트 확인

코어는 하루에 한 번 자체 스레드에서 확인하고, 보이는 것은 레이아웃 위에 덮이는 것이 아니라 레이아웃 위의 띠입니다. 터미널을 가리는 알림은 사람들이 읽지 않고 닫는 법을 배우게 되는 것이기 때문입니다. 누르기 전에는 아무것도 설치되지 않습니다. 에이전트의 업데이트는 출력이 보이는 활성 블록에 입력되는 명령이고, Mac의 Vobuda는 버튼이 새 버전을 백그라운드에서 설치한 다음 재시작을 제안하며, 실행 중인 것이 없으면 10초 뒤 저절로 재시작됩니다.

40개 언어, 그리고 각 언어별 안내서

시스템이 코어에서 만드는 macOS 메뉴 바도 포함됩니다. 아랍어와 히브리어는 터미널 자체를 제외한 창 전체를 좌우로 뒤집어 표시합니다. 터미널까지 뒤집으면 출력과 경로를 읽을 수 없게 되기 때문입니다. 번역 키는 영어 문자열 자체이므로, 번역되지 않은 문자열은 빈 칸이나 식별자가 아니라 읽을 수 있는 영어로 대체됩니다.

방금 읽은 기능을 직접 써보라

첫 실행에서 간단한 질문 두 가지에 답하고 나면 터미널 블록 하나만 열립니다. 위의 모든 것은 원할 때 켜는 것입니다.

curl -fsSL https://vobuda.com/install.sh | sh