Intro#
고수는 도구에 구애받지 않는다. 마거릿 해밀턴은 천공카드를 뚫어서 아폴로호를 달에 보냈고, 리누스 토르발스는 리눅스 개발에 uEmacs를 사용했다고 한다.
하지만 나는 그런 고수가 아니다. CLI에는 낭만이 있지만, 간단한 작업이 아니라면 GUI 환경을 두고 굳이 CLI를 고집하는 건 그냥 허세라고 생각했다.
그런 내 생각을 바꿔준 유용하고 낭만 있는 TUI 도구들을 소개한다.
Zellij#

Zellij는tmux와 비슷한 터미널 멀티플렉서다. 터미널 하나를 여러 개의 작업 공간처럼 나눠 쓸 수 있게 해주는 도구라고 생각하자.
서버에 SSH로 접속해서 tail -f app.log로 로그를 보고 있다고 가정하자. 이때 로그 화면은 유지한 채 새로운 터미널 작업을 하고 싶다면, 보통은 내 컴퓨터에서 터미널을 분할한 뒤 다시 SSH로 서버에 접속해 작업해야 한다.
하지만 Zellij를 사용하면 하나의 세션 안에서 패널을 나눠 쓸 수 있다. 로그를 계속 보고 있는 상태에서도 Ctrl + p로 패널 모드에 들어간 뒤 새 패널을 만들면, 같은 SSH 연결 안에서 다른 작업을 할 수 있다. 또 detach를 사용해 세션을 백그라운드에 살려둔 채 빠져나오면, 추후 attach를 통해 이전에 열어둔 패널과 실행 중이던 작업을 그대로 이어서 사용할 수 있다.
이외에도 다양한 기능이 있는데, 내가 볼 때 젤 간지나는 Zellij의 Floating Panes 기능만 보고 넘어가자 (아래 움짤).

관련 사이트들
- GitHub: https://github.com/zellij-org/zellij
- Homepage: https://zellij.dev
- Docs: https://zellij.dev/documentation/
Yazi#

Yazi는 파일 매니저 TUI다. Windows의 Explorer나 macOS의 Finder를 터미널 안에서 사용하는 느낌이라고 생각하자.
요즘은 맥에서도 Finder보다 Yazi를 더 많이 쓰는 것 같다. 폴더 구조가 단순하면 ls만으로도 충분하지만, 조금만 복잡해져도 ls → cd → ls -al → cd의 무한 루프가 시작된다. Yazi는 이런 파일 탐색 과정을 훨씬 편하게 만들어준다. 또한 이동, 선택 같은 기본 조작도 vim과 상당히 비슷한 컨셉이라 쉽게 적응할 수 있다.
낭만은 덤이고, Rust로 작성되어서인지 터미널 안에서 10만 개의 파일도 1초 이내로 인덱싱한다. 또한 rg, fzf, nvim 같은 도구와 플러그인을 내 마음대로 조립할 수 있어서 한 번 설정해두면 웬만한 파일 작업은 전부 Yazi를 통해 처리하게 된다.


관련 사이트들
- GitHub: https://github.com/sxyazi/yazi
- Homepage: https://yazi-rs.github.io/
Posting#
Posting은 터미널에서 쓰는 Postman이라고 생각하자.
솔직히 Posting은 자주 쓰진 않는다. 각 잡고 할 땐 Apidog이나 Postman을 켜고, 대충 테스트할 땐 curl로 충분하다.
하지만 꼭 “CLI-only” 환경에서 사용해야 한다면 얘기가 달라진다. curl에 헤더와 바디 데이터를 덕지덕지 붙이고 있다가 4줄 위에서 오타를 발견한 경험이 있다면 한 번 사용해 보자.
OpenAPI/Swagger 명세와 연계하는 기능도 있지만, 사실 그 정도로 복잡한 상황이면 그냥 편하게 GUI 클라이언트를 사용하자. CLI-ONLY라면…힘내자

관련 사이트들
- GitHub: https://github.com/darrenburns/posting
- Homepage: https://posting.sh/
Final#
솔직히 나는 이 TUI 도구들의 기능을 1/10도 활용하고 있지 않다. 하지만 이 정도만으로도 터미널에서 작업하는 느낌이 많이 달라진다.
요즘은 컴퓨터에 설치하지 않고도 쉽게 실행해 볼 수 있는 방법들도 제공하니 한 번씩 찍먹해보자.
기회가 된다면 잘 쓰고 있는 Lazy TUI 시리즈들에 대해서도 다뤄보겠다.
3-Point#
- CLI는 낭만이다.
- TUI는 그 낭만을 더 편하게 만들어준다.
- 일단 터미널을 켜고 한 번 찍먹해보자.