최근 Claude Code, Codex, Antigravity CLI, Cline 등 다양한 AI 코딩 에이전트가 빠르고 다양하게 등장하고 있다.
나 역시 이러한 코딩 에이전트를 더욱 효율적으로 활용하기 위해 여러 가지 방법을 시도하고 있다.


최근의 코딩 에이전트는 IDE에서 CLI 기반으로 활용하는 것이 trend가 되었으며,

모든 기능은 터미널 안에서 TUI(Terminal User Interface) 형태로 동작한다.

 

따라서 소프트웨어 개발 환경에서 터미널은 단순히 명령어를 입력하는 도구를 넘어,

코딩 에이전트의 사용성과 생산성을 좌우하는 중요한 작업 공간이 되었다.

 

이와같이 코딩 에이전트와 터미널 사이의 궁합이 아주 중요하기에

OpenCode와 같은 경우 추천하는 '터미널 에뮬레이터'를 명시하고 있다.

  - https://opencode.ai/docs/#prerequisites

 

여러 터미널 에뮬레이터가 최근 유행하고 있지만, 우리는 지금 "Ghostty"에 대해서 알아보고자 한다.

 

 

▶ Mitchell Hashimoto

개발환경/클라우드/자동화(CI) 등의 업무를 하고 있는 사람이라면 누구나 알고 있을 'HashiCorp'라는 회사가 있고

그와 더불어 'Hashimoto'라는 이름을 최소한 한 번쯤은 들어봤을 것이다.

  - https://www.hashicorp.com/en/blog/authors/mitchell-hashimoto

 

Vagrant, Vault, Terraform, Nomad 等 정말 다양한 도구를 개발하고 무료로도 사용할 수 있게 제공해준

정말 천사같으면서도 왠지 상당히 geek스러운 분위기를 풍기는 많은 개발자들이 사랑하는 그런 ...

 

'Hashimoto'가 2023년에 해시코프(HashiCorp)에서 물러난 이후,

가장 애정을 갖고 진행하는 프로젝트 중 하나가 바로 "Ghostty"이다.

 

 

▶ libghostty

Ghostty는 여러 특징을 갖지만, 그 중 가장 큰 부분은 엔진이 되는 부분과 Frontend를 분리했다는 것이다.

 

이런 구조를 갖게 됨으로써, 다른 여러 프로젝트에서 'libghotty'를 가져다가 사용할 수 있게 되었다.

실제로 이미 많은 프로젝트에서 이렇게 활용하고 있고, 그 목록은 아래에서 확인할 수 있다.

  - https://github.com/Uzaaft/awesome-libghostty 

 

 

▶ Ghostty

공식 홈페이지는 simple 하다.

  - https://ghostty.org/ 

 

하시모토가 직접 말하기를 'Ghostty'라는 이름에 특별히 심오한 의미는 없으며,

귀엽고 좋은 마스코트가 있고, 'tty'라는 단어가 들어가 있어서 터미널의 역사와도 잘 어울리고,

터미널이 마치 '기계 속의 유령'처럼 존재한다는 것을 암시하는 것 같아서 마음에 들었다고 한다.

 

 

Download

안타깝게도 아직은 macOS와 Linux만 지원해주고 있다. (Windows는 아직)

  - https://ghostty.org/download 

 

Download로 되어있어서 deb 패키지를 다운로드 받을 수 있을 것으로 기대했지만 ...

 

 

Install (Ubuntu)

Ubuntu 환경에서는 명령어 실행 방식으로 설치를 진행하면 된다.

  - https://ghostty.org/docs/install/binary#ubuntu 

 

예쁘게 설치 된다.

 

사실 뭐, 그냥 터미널이다.

 

 

Features: Split Screen

코딩 에이전트의 생산성을 높이는 대표적인 방법 중 하나는 화면 분할(Split Screen)이다.

 

여러 작업을 동시에 확인하고 실행할 수 있다는 장점 덕분에,

최근에는 터미널 화면을 분할하고 세션을 관리할 수 있는 tmux가 다시 주목받으며 전성기를 맞고 있다.

하지만, 개인적으로 설치 및 사용하기에 그닥 편하지도 않고 불편한 것도 많았다.

 

Ghostty는 자체적으로 Split Screen 기능을 제공해준다.

  - 오른쪽 화면 분할: Ctrl + Shift + o

  - 아래쪽 화면 분할: Ctrl + Shift + e

 

 

Features: Configuration

Ghostty는 대부분의 사용자는 별도의 환경 설정 없이 사용하도록 하는 철학을 바탕으로 한다고 한다.

하지만 Terminal에서 환경 설정은 필수 불가결한 요소이지 않나 싶다.

 

환경 설정 파일은 가급적 하나의 파일로 해결할 수 있도록 하고 있다.

"$HOME/.config/ghostty/config.ghostty"

 

 

 Features: Color Theme

다양한 테마를 제공해준다. 아래 명령어로 살펴볼 수 있다.

$ ghostty +list-themes

 

환경 설정 파일에 선택한 theme를 명시해보자.

$ nano ~/.config/ghostty/config.ghostty

 

 

저장 후 'ctrl + shift + ,' 단축키를 입력하면 Ghostty 재시작 없이 환경 설정값을 reload 할 수 있다.

 

 

Clipboard

마우스로 drag 했을 때 clipboard로 복사가 잘 안되는 경우에는 아래와 같이 환경 설정을 하면 된다.

$ nano ~/.config/ghostty/config.ghostty

 

"copy-on-select = clipboard"

 

 

 

개인적으로 몇 주째 기본 터미널이 아닌 ghostty를 사용해보고 있는데,

일단 빠르고 split screen을 기본으로 지원해주는 부분에서 상당히 흡족하다.

 

아직 clipboard 등의 문제를 만나기도 해서 안정성에서는 조금 더 살펴봐야하겠지만,

ghostty를 메인 환경으로 사용할 수 있도록 익숙해져보려고 한다.

반응형

리눅스를 좋아하는, 특히 커맨드-라인 인터페이스를 좋아하는 분들은

각자 나름의 커스터마이징된 환경 꾸미는 것을 좋아하는 경우가 많다.

 

우분투와 같은 리눅스를 설치하면 기본적으로 bash가 설치되지만

리눅스를 많이 사용하는 분들은 zsh으로 바꿔서 사용하는 것 처럼 ... ^^

 

이처럼 커맨드-라인을 사용하는 환경을 커스터마이징 할 때

자주 언급되는 유틸리티 중 하나가 바로 "fzf (command-line fuzzy finder)" 이다.

- https://junegunn.github.io/fzf/

 

fzf

 

버전이 아직도 v0.56.3 에 머물러 있음에도 (ㅋㅋㅋ 절대 v1.0 릴리즈를 하지 않겠다는 의지?!)

Star 갯수에서 유추할 수 있듯이 global에서 유명한 툴이다.

 

GitHub

 

우리나라에서 더더욱 유명한 이유는 !!!

개발자가 우리나라 분이시다 !!!

 

Junegunn Choi

 

푸릇푸릇한 잔디밭도 대단하고,

Sponsors 목록.... 오!!!!! 국내 개발자 중에 저 정도의 Sponsors 목록을 갖고 있는 분은 처음 봤다!!!

 

 

1. Installation

Homebrew를 이용해서 설치하는 것이 기본적으로 권장하는 방법이고,

운영 체제에 따라서 편하게 설치할 수 있는 다양한 방법을 제공해주고 있지만

(개인적인 취향으로) 지원만 해준다고 하면 git clone 방식으로 설치하는 것을 권장한다.

- https://github.com/junegunn/fzf?tab=readme-ov-file#using-git

 

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

 

버전 업그레이드가 필요하다고 하면 다음과 같이 할 수 있다.

- https://github.com/junegunn/fzf?tab=readme-ov-file#upgrading-fzf

 

cd ~/.fzf && git pull && ./install

 

 

2. shell integration (zsh)

설치 과정에서 자동으로 셋업 해주기는 하는데,

혹시 잘 안되는 경우가 있을까 하여 추가적으로 확인하는 과정을 넣어보았다.

 

가이드 문서에는 다음과 같이 되어있다. (zsh이 아닌 경우 아래 링크 참조)

- https://github.com/junegunn/fzf?tab=readme-ov-file#setting-up-shell-integration

 

# Set up fzf key bindings and fuzzy completion
source <(fzf --zsh)

 

하지만, 설치 과정에서 자동으로 반영해준 내역은 조금 다르다.

 

.zshrc

 

어!? 뭔가 파일을 불러오네!?

그러면, 그 파일을 추가로 확인해보자.

 

.fzf.zsh

 

가이드 문서에 있는 내용과 결국은 같기는 한데, 경로 추가도 포함되어 있어서 더 좋은 것 같다.

 

뭐, 여하튼 이렇게 잘 반영되어 있으면 좋고,

혹시 반영이 안되어 있으신 분은 위 내용 참고해서 반영해주면 된다.

 

그런 후에, 터미널을 재시작 하던지 아니면 "source ~/.zshrc" 하던지 하고

fzf가 잘 설치되어 있는지 확인해보면 된다.

 

version

 

3. Simple Usage

nano 에디터를 이용해서 어떤 파일을 편집하고 싶다고 해보자.

그런데, 파일 이름은 알고 있지만 어느 경로에 있는지 까지는 모른다거나 타이핑하기 귀찮은 상황이라면...

 

> nano $(fzf)

 

제일 아래 부분에서 원하는 파일 이름을 하나씩 타이핑하면

위에 추천하는 파일들을 실시간으로 업데이트 하면서 보여준다.

 

원하는 파일이 있으면 화살표 키를 이용해서 고른 다음에 엔터를 치면 된다.

 

4. Short-Key

단축키도 지원을 해준다.

커맨드-라인 상태에서 "Ctrl + R" 키를 누르면 이전에 사용했던 이력을 보여준다.

 

 

현재 디렉토리 기준으로 하위 디렉토리를 포함한 파일들의 목록을 보여주는 것은 "Ctrl + T"이다.

 

 

이외에도 다양한 기능들을 제공해주고 있는데...

한 번에 다 공부하기에는 부담스러워서 이번에는 일단 여기까지~~~

 

더 알고 싶으신 분들은 공식 문서를 참고하기 바란다.

- https://github.com/junegunn/fzf?tab=readme-ov-file#usage

 

반응형


형상관리 도구로써

Git 자체는

Command line 방식으로

사용하는 것을 추천한다.


나만 이렇게 생각하는 것은 아니라고 생각한다.

많은 분들이 동감할 것이다.



그래서

Windows 환경에서도

Git-bash를 사용해서

Git을 사용하고 있는데...






문제는

GitHub를 사용할 때에는

결국

Web 환경을 사용할 수 밖에 없다.



Issue를 확인한다던지,

Pull-Request를 한다던지...




하지만, 웹을 사용하기 어려운 경우...

아니면, 웹을 사용하기 싫은 경우...


우리에게 필요한 것은 뭐 ?!


"GitHub CLI"



최근에 GitHub에서 version 1.0을 릴리즈 하였다.



https://cli.github.com/





1. Installation (Win)



설치는 그냥 다운로드 받아서 Next 연타 하면 끝

(Linux, Mac도 손쉽게 할 수 있다)



실행은

Git-bash 또는 PowerShell

모두 잘 된다.







2. Authentication


Beta 버전 때에는 Enterprise를 지원하지 않는데,

v1.0 정식 릴리즈에서는

github.com + Enterprise

모두 잘 지원한다 !!!


예를 들어서 Issues 목록을 보고 싶다고 하는 경우

GitHub Client에게

어떤 repository의 Issues 목록을 보고 싶은지를

알려줘야 한다.


그리고 또하나 필요한 것은

Issues를 읽어올 수 있는

인증/권한을 셋팅하는 것 !!!



기본적인 인증 등록은 아래와 같다.


GitHub-bash에서는 정상동작하지 않는다.

PowerShell에서 실행하면 된다.


$ gh auth login


GitHub.com과 Enterprise를 고를 수 있다.



일단, GitHub.com을 선택해보았다.



웹브라우져로 할 수도 있고,

token값을 넣을 수도 있다.


웹브라우져를 선택했다.



코드값 잘 복사해놓고 엔터를 누르면 된다.



default 브라우저가 IE로 되어있으면

잘 안될 수도 있다고 한다.


Chrome 권장


위에서 복사한 코드값 넣고 'Continue' 클릭~



권한 주면 된다.


패스워드 한 번 더 확인해주고~



축하받으니 뭔가 좋긴 한데... ^^



앞에 화면 하나 캡처하지 못했는데...


기본 프로토콜로 HTTPS 사용할건지 SSH 사용할건지 묻는 화면도 있다.


굳이 HTTPS 사용할 이유는 없어서 SSH로 설정했다.






3. Usage


이제 어떻게 동작하는지 살펴보자.


> gh issue list -R [OWNER/REPO]



텍스트로 목록을 잘 보여준다.

한글도 잘 나오는 것을 볼 수 있다.



> gh issue view [이슈번호] -R [OWNER/REPO]



텍스트로 본문도 볼 수 있다.


"--web" 옵션을 사용하면 브라우져로 확인할 수도 있다.






사용할 수 있는 명령어들과 옵션들은 아래 사이트에서 확인할 수 있다.


https://cli.github.com/manual/




반응형

+ Recent posts