Codex 와 Local LLM 연결하기

Local LLM 시리즈

  1. (Local LLM) Ollama 시작하기
  2. Codex 와 Local LLM 연결하기

Codex 와 Local LLM 연결하기

Codex 를 Local LLM 로 서빙하는 API End point 에 연동해 사용하는 방법을 정리 요약한다.

  1. codexcli: 0.134 (20260526 설치)
  2. client: Ausus A14 / RTX 4060 8GB
  3. server: RTX 3080ti

설치와 시작

codex 를 설치하고 프로젝트 폴더에서 codex를 실행한다.

프로젝트를 시작하면 .codex/ 폴더의 config.toml 설정 파일에 [projects.] 섹션이 생성된다.

프로젝트 섹션에 codex 를 시작한 폴더가 설정된다.

1
2
3
4
5
6
7
8
# .codex/config.toml
personality = "pragmatic"

[projects."/home/user/My_Project"]
trust_level = "trusted"

[tui.model_availability_nux]
"gpt-5.5" = 4

모델 Provider 설정

config.toml[model_providers.] 섹션에 LLM endpoint 를 명시적으로 설정할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# .codex/config.toml
personality = "pragmatic"

[projects."/home/user/My_Project"]
trust_level = "trusted"

[model_providers.goyangi]
name = "openai" # openai chat
base_url = "http://192.168.0.3:8001" # llama-server
wire_api = "responses"
requires_openai_auth = false

[model_providers.local_llm]
name = "openai"
base_url = "http://localhost:11434/v1" # openai endpoint /v1 지정 필요
wire_api = "responses"
requires_openai_auth = false


[tui.model_availability_nux]
"gpt-5.5" = 4
  • wire_api = "responses" : 최신 버전의 codex 는 response 로 지정해야 한다고 한다.

모델에 대한 provider 설정을 알아보자.


프로파일 설정

config.toml 의 model_providers 의 선언한 provider 이름은 별도의 동일한 파일로 설정한다.

해당 provider 의 동일 이름의 .codex/PROFILENAME.tomy 파일을 참조하게 된다.

이곳에 LLM endpoiint 의 세부 모델에 대한 파라미터를 선언한다.

예를 들의 위의 goyangi_coder 는 다음 같이 구성된다.

1
2
3
4
5
6
7
#.codex/goyangi_coder.config.toml
model_provider = "goyangi"
model = "gpt-5"
approvals_reviewer = "user"
# 필요 시 추가 옵션
# max_tokens = 2048
# context_length = 8192

다른 프로바이더 local_llm 프로파일은 다음 같이 구성된다.

1
2
3
4
5
6
7
#.codex/local_llm.config.toml
model_provider = "local_llm"
model = "gemma-4" # 서비스가 제공하는 정확안 모델 이름
approvals_reviewer = "user"
# 필요 시 추가 옵션
# max_tokens = 2048
# context_length = 8192

시작

프로파일을 사용해서 codex 를 시작할 수 있다.

1
codex --profile local_llm

테스트

1
curl http://192.168.0.3:8001/v1/models

반환된 JSON 결과의 id 값이 "gemma-4"가 아니라 파일명 전체(예: "gemma-4-it-Q4_K_M.gguf")로 되어 있다면, 그 값을 그대로 model 필드에 적어주어야 매칭 실패 에러가 나지 않습니다.


한국어

Linux에서 Codex 한글 설정
Linux는 시스템 로케일이 UTF-8이면 추가 설정 없이 정상 작동합니다. locale 명령으로 확인하세요.

locale

LANG=ko_KR.UTF-8 또는 en_US.UTF-8이면 정상

만약 UTF-8이 아니라면:

sudo locale-gen ko_KR.UTF-8

sudo update-locale LANG=ko_KR.UTF-8

Tmux Start (202605)

Tmux 시리즈:

  1. Tmux Start (202605)
  2. Tmux Cheatsheet (202605)
  3. Tmux Plugins (202605)

이 내용은 tmux 2.x, 3.x 에서 사용 가능하다.

2026-05-29: 내용 문맥 조정, 설치 부분 삭제.
- OLD Tmux Start(20170504)
2017-07-10: tmux-continum 추가

Tmux는 terminal multiplexer로 서버에 여러 프로그램을 세션에 저장하고, 다른 작업 혹은 연결을 끊었다 다시 접속해서 세션을 열어 작업을 이어갈 수 있다.

[그림. Tmux 실행 모습 (tmux.github.io)]

설치 관련 (OLD machines)

최신 리눅스는 대부분 내장으로 설치된 듯 하다: WSL, Ubuntu 24.04/26.04 …

  • Ubuntu 14.04, Raspbian Jessie, Armbian 등에서 tmux가 1.8, 1.9 버전이 제공
  • Ubuntu 15, 16 Xenivior 버전은 Tmux 2.1
  • Old 버전 Ubuntu 14.04, Raspbian 등에서 tmux가 1.8, 1.9 버전이 제공되는데 package manager 같은 기능을 사용할 수 없다. 소스로 빌드해서 사용할 수 있다.
  • Ubuntu 14.04 desktop, orangepi plus, raspberry pi jessie 초기 버전은 빌드 필요

시작

tmux 명령으로 시작할 수 있다.

tmux 를 시작하면 하나의 세션에 하나의 윈도우가 만들어 진다.

1
2
$ tmux                   # 세션을 시작하고 참가한다.
$ tmux new -s foo # 세션 foo를 시작하고 참가한다

세션에 참가하면 하나 혹은 그 이상의 윈도우에서 Pane을 배치해 사용할 수 있다.


[그림. Tmux window layout]


세션 연결

세션은 하나 혹은 그 이상 만들고 attach 명령으로 세션에 참가할 수 있다.

1
2
3
4
$ tmux new -s foo        # 세션 foo를 시작
$ tmux ls # 세션 목록을 출력한다.
0: 1 windows (created Fri May 12 10:26:00 2017) [80x24] (attached)
foo: 1 windows (created Fri May 12 10:34:18 2017) [80x24]

터미널에서 세션에 참가하려면 attach 명령과 대상 세션을 지정해 준다. 대상 세션은 tmux ls 명령에 표시되는 세션번호 혹은 세션이름을 지정한다.

1
2
3
$ tmux attach
$ tmux attach -t 0 # 세션 0번에 참여한다
$ tmux attach -t foo # 세션 foo에 참여한다.

세션을 완전히 종료 시키려면, tmux 세션에서 명령모드 C-: 에서 kill-session 명령을 실행한다.
혹은 다른 터미널에서 세션번호 혹은 세션 이름으로 종료한다.

1
$ tmux kill-session -t 3   # 세션번호 3을 종료한다.

Control와 Meta key

Tmux 세션 시작후 Prefix key 를 통해 세션, 윈도우와 tmux 내장 명령을 실행할 수 있다.

즉, Prefix key로 Session, Window, Pane 관련 명령을 키로 조합해 사용한다.

기본 Prefix key는 Control+b key고 옵션으로 사용하는 Meta key는 Alt 키 이다.

여기서 Prefix key는 C와 조합으로 표기하고, Meta key인 AltM으로 표기한다.

윈도우 명령 control, meta 키 조합과 병행해 윈도우에서 명령모드를 사용할 수 있다.

명령모드는 C-: 키로 시작하고, 명령모드에서 명령 자동 완성 이 지원된다.


[그림. Window command mode]


Pane 다루기

윈도우는 수직/수평으로 구획을 나눌수 있다. C-“ 키로 현재 Pane 아래에 수평으로 새 Pane을 나눈다. 그리고 **C-%**키로 수직으로 새 Pane을 나눌 수 있다.


[그림. Tmux Window Pane]

  • C-q : pane 번호를 표시하고 번호를 눌러서 이동
  • C-o : pane을 순서대로 이동
  • C-방향키 : 해당 방향으로 이동
  • C-M-방향키 : 해당 방향으로 크기 조절
  • C-M-1~5 : 몇 가지 미리 설정된 레이아웃을 고를 수 있고, prefix space로 이 레이아웃을 순서대로 - 돌아가며 선택 가능
  • C-z : 특정화면만 확대하기 다시 예전 Panes상태로 돌아오기

Pane을 지우려면 C-x 키로 종료 혹은 터미널에서 exit로 터미널을 종료한다


Window 다루기

윈도우는 명령모드에서 new-window 혹은 C-c 키로 새 윈도우를 추가할 수 있다.


[그림. new Window ]

윈도우 목록은 C-w로 목록을 표시, 방향키로 윈도우 선택해 이동할 수 있다.

또한 윈도우 번호에 따라 단축키 C-0,1,2…9를 사용해 윈도우 사이의 이동 가능.

  • C-n, C-p : 다음 윈도우, 이전 윈도우로 이동
  • C-l : 직전 사용하던 윈도우로 이동
  • C-w : 윈도우 리스트를 띄우고 선택
  • C-, : 윈도우 이름 바꾸기

세션 사용중에 세션을 빠져 나오려면 C-d 로 Tmux 를 detach 할 수 있다.

detach는 명령모드 C-:에서 detach 명령을 사용할 수 있다.


복사와 스크롤

Tmux 터미널 화면 버퍼는 한 화면만 표시가 가능하다.

이전 화면 내용을 보려면 스크롤 기능을 켜야 한다. C+[ 로 스크롤 켜면, 우측상단에 페이지 표시가 나타난다.

키보드 방향키나 Page Up/Down키로 스크롤이 가능하다.


설정 사용

Tmux 의 환경 파일은 tmux 설정을 위힌 default 파일이 존재하지 않는다. 그래서 사용자가 별도의 설정파일에 작성해서 사용하면 된다.

보통 사용자 홈디렉토리에 .tmux.conf 파일에 tmux에 대한 설정을 명시할 수 있다.

설정 탑재:

  1. tmux 세션 사용중, 설정 재탑재

현재 사용중인 세션에서 C+r 로 재탑재가 가능하다.

1
C-r : 설정 파일을 새로고침합니다 
  1. tmux source 사용

변경한 설정을 적용하려면 터미널에서 다음 명령을 사용한다.

1
tmux source ~/.tmux.conf

현재 설정 추출과 백업:

tmux 기본 설정을 백업 혹은 확인하려면 tmux show 명령으로 확인이 가능하다.

1
tmux show -g

현재 tmux에 설정된 값을 백업:

1
tmux show -g | sed 's/^/set-option -g /' > ~/.tmux/tmux.current.conf

Prefix key 조합 변경

Prefix 키를 Control + a 키 조합이 편하다. 설정파일에 키 조합을 지정한다.

1
2
3
4
5
#Control+a에 'prefix' 연결
set -g prefix C-a
#send-prefix를 Control+a에 전달
bind C-a send-prefix
unbind C-b

설정을 다시 탑재하면 prefix는 C-a 로 재배치된다.

관리자들은 Capslock키를 Control 키도 선호한다.


참고

  1. OLD Tmux 시작
  2. OLD Tmux cheatsheet