UI 가 없는 것이 궁극의 UI 입니다
화면을 만드는 데 돈이 많이 들던 시절에는 모두가 같은 화면을 받았습니다. 이제 화면 하나를 만드는 비용은 0 에 가깝습니다. 남은 질문은 정해진 화면을 어떻게 없애고, 각자가 의도대로 꾸리게 할 것인가입니다. 저희의 생각과 endue Desk 를 소개합니다.

목차
수십 년 동안 소프트웨어는 남이 정한 화면과 함께 왔습니다. 제품 팀이 메뉴와 배치와 버튼 순서를 정했고, 수백만 명이 같은 화면을 익혔습니다.
화면이 비쌀 때는 그게 맞았습니다. 화면 하나에 디자이너와 개발자와 몇 달이 들었으니, 모두에게 그럭저럭 맞아야 했습니다.
그 비용이 거의 사라졌습니다. 에이전트는 돌아가는 패널 하나를 몇 분이면 씁니다. 그러니 질문이 바뀝니다. 정해진 화면 하나를 한 분기 더 다듬을 이유가 약해졌습니다. 물어야 할 것은 정해진 화면을 어떻게 없애고, 각자가 원하는 것을 말로 꾸리게 하느냐입니다.
짧게 정리하면
- 정해진 화면은 비용 때문에 내린 결정이었습니다. 디자인 하나가 모두를 감당해야 했습니다.
- 이제 화면 하나 만드는 비용은 0 에 가깝습니다. 에이전트가 씁니다.
- 그래서 화면이 사람을 따라갈 수 있습니다. 의도를 말하면 구성이 따라옵니다.
- 오래 가려면 바탕이 받쳐 줘야 합니다. 작은 코어, 돌아가는 중에 갈아 끼우는 부품, 모든 호출에 붙는 권한 확인, 나눌 수 있는 설정.
1. 왜 모든 앱은 비슷하게 생겼나
정해진 화면은 평균입니다. 대부분의 사람이 대부분의 시간에 쓰는 기능을, 누구에게도 딱 맞지는 않는 순서로 담습니다.
그 비용은 사람들이 화면을 피해 가는 방식에서 보입니다. 탭 사이로 숫자를 옮겨 적습니다. 질문 하나에 답하려고 창 다섯 개를 띄웁니다. 데이터가 이미 앱 안에 있는데도, 필요한 보기를 옆 스프레드시트에 다시 만듭니다.
이건 누구의 실수도 아니었습니다. 한 사람을 위한 화면을 만들기엔 너무 비쌌습니다.
2. 화면 하나의 값이 거의 0 이 됐다
패널 하나는 코드 몇백 줄이고, 에이전트는 그런 코드를 빨리 씁니다. 화면 하나가 몇 분이면 생긴다면, 디자인 하나를 수백만 명이 나눠 쓸 이유가 약해집니다. 사람마다 자기 화면을 가질 수 있습니다.

이 예에서 사람이 만든 것을 보세요. 문장 세 개입니다. 그 밑에 설정 몇 줄이 깔립니다. 읽을 수 있고, 버전을 남길 수 있고, 남에게 건넬 수 있는 평범한 텍스트입니다.
3. 통제는 남고, 모양만 바뀝니다
정해진 화면이 사라지면, 통제는 그 아래 시스템의 네 가지 성질로 옮겨 갑니다.
- 모든 것이 명령입니다. 클릭, 단축키, 말로 한 요청, 에이전트가 모두 같은 명령을 부릅니다. 사람이 할 수 있는 일은 에이전트도 할 수 있고, 그 반대도 그렇습니다.
- 돌아가는 중에 바꿉니다. 한 부분을 고치면 그 부분만 다시 뜹니다. 하던 일은 계속됩니다.
- 보기 전에 묻습니다. 파일, 프로세스, 네트워크에 닿는 모든 호출은 사람이든 에이전트든 권한 확인을 거칩니다.
- 설정은 텍스트입니다. 무엇이 바뀌었는지 읽고, 되돌리고, 나눌 수 있습니다.

4. 상상력이 곧 기능이 됩니다
Emacs 가 이게 된다는 걸 보여 줬습니다. 코어는 작고, 나머지 거의 전부가 돌아가는 중에 고칠 수 있는 코드입니다. 사람들은 오랜 세월 이 텍스트 편집기를 메일 프로그램으로, 달력으로, 플래너로 바꿔 왔고, MELPA 같은 패키지 저장소로 서로 나눴습니다.
데스크톱도 같은 모양을 가질 수 있습니다. 코어가 기본 요소만 쥐고 있으면, 새 아이디어는 플러그인 하나가 됩니다. 마켓플레이스는 내 상상력을 시험해 보고, 남의 상상력을 가져오는 곳입니다.

그래서 무엇부터 하면 되나
도구를 바꾸기 전에도 시작할 수 있습니다.
- 가장 자주 여는 화면 세 개를 적습니다. 그리고 거기서 실제로 무엇을 찾는지도 적습니다.
- 화면마다 의도를 한 문장으로 다시 씁니다. 예를 들어 「나를 기다리는 일을 오늘 일정 옆에 보여 줘」.
- 지금 쓰는 도구가 그 문장대로 움직일 수 있는지 봅니다. API 로든, 명령 팔레트로든, 에이전트로든.
- 내 구성을 텍스트로 남깁니다. 버전을 남기고 나눌 수 있는 파일로.
- 에이전트에게 화면을 바꾸게 하기 전에, 무엇을 볼 수 있는지부터 정합니다.
endue Desk
저희는 이 생각 위에 endue Desk 를 만들고 있습니다. Apache-2.0 라이선스의 오픈소스 데스크톱이고, 화면에 정해진 것이 없습니다.
Tauri 셸과 작은 Rust 코어가 기본 요소만 쥡니다. 파일, 프로세스, 네트워크, 오디오, 창입니다. 그 위의 모든 것은 플러그인이고, 기본으로 들어 있는 부분도 마찬가지입니다. 어느 것이든 앱이 돌아가는 중에 갈아 끼울 수 있습니다. 플러그인은 이 셋 중 하나입니다.
- iframe 안의 화면
- Wasm 으로 된 로직
- MCP 로 붙는 도구
설정은 init.yaml 에 있습니다. Eris 와 내 에이전트는 내가 부르는 것과 같은 명령을 부르고, 모든 호출은 같은 권한 확인을 거칩니다. Desk 는 원격 수집(telemetry)을 하지 않습니다.
Desk 는 지금 pre-alpha 입니다. 코드는 github.com/endue-ai/Desk 에 공개돼 있습니다. 개발 빌드를 열면 Eris 가 있는 데스크가 뜨는데, 아직은 받은 말을 그대로 돌려줍니다. 앱과 마켓플레이스는 곧 나옵니다.
없었으면 하는 화면이 있다면, 그 화면을 대신할 문장 하나를 적어 보세요. 그 문장이 첫 플러그인입니다.


