nessie

원격 실행기 설정하기

Nessie 에이전트와 함께 작동하는 컴퓨터를 설치하고, 페어링하고, 관리하세요.

실행기는 여러분이 관리하는 컴퓨터를 Nessie에 연결합니다. 실행기가 사용해야 할 파일과 프로그램을 가진 OS 계정으로 설치하세요. Node.js나 소스 체크아웃은 필요하지 않습니다.

macOS

CLI에는 Apple Silicon의 macOS 15 이상이 필요합니다:

brew install unlikeotherai/tap/nessie-executor

전체 Nessie 데스크톱 앱이나, 로컬 권한 창이 있는 독립형 실행기를 쓰려면:

brew install --cask unlikeotherai/tap/nessie
brew install --cask unlikeotherai/tap/nessie-executor-app

사용할 인터페이스를 고르세요. 페어링마다 감독 프로세스를 하나씩 실행합니다. 실행기 앱의 설정 → 로그인할 때 Nessie Executor 열기에서 자동 시작을 조절합니다.

Debian과 Ubuntu

x86_64 Debian 12 이상 또는 Ubuntu 22.04 이상에서 서명된 APT 저장소를 사용하세요:

sudo apt-get update
sudo apt-get install -y curl ca-certificates
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://packages.nessie.works/nessie-executor.asc | sudo tee /etc/apt/keyrings/nessie-executor.asc >/dev/null
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/nessie-executor.asc] https://packages.nessie.works/apt stable main" | sudo tee /etc/apt/sources.list.d/nessie-executor.list >/dev/null
sudo apt-get update
sudo apt-get install nessie-executor

Fedora, Rocky Linux, AlmaLinux 계열

x86_64 Fedora 또는 Rocky Linux / AlmaLinux 9 이상에서 서명된 RPM 저장소를 사용하세요:

sudo curl -fsSL https://packages.nessie.works/nessie-executor.repo -o /etc/yum.repos.d/nessie-executor.repo
sudo dnf install nessie-executor

Linux 백그라운드 서비스에는 systemd가 필요합니다. 패키지에는 런타임이 포함되어 있으며, APT 또는 DNF가 Git과 tmux를 의존성으로 함께 설치합니다.

Windows 실행기

WinGet을 사용해 서명된 독립형 실행기를 설치하세요:

winget install --exact --id UnlikeOtherAI.NessieExecutor

시작 메뉴나 트레이에서 Nessie Executor를 여세요. 새 팀 연결은 로그인한 Windows 계정으로 실행됩니다. 설치 프로그램은 독립적인 서비스 계정 감독 프로세스도 함께 제공합니다. 대화형 터미널 프로그램은 로그인 자격 증명을 사용할 수 있는 사용자 세션 연결에서만 실행됩니다.

팀 페어링

sudo 없이, 일반 계정으로 CLI를 실행하세요:

nessie-executor login --api nessie --workspace "/path/to/work"

직접 운영하는 Nessie 서버라면 nessie를 HTTPS API 주소로 바꾸세요. 데스크톱 실행기의 팀 추가도 같은 흐름을 시작합니다.

  1. 컴퓨터에 표시된 8자리 코드를 복사하세요.
  2. Nessie에서 관리자 › 컴퓨터 › 컴퓨터 추가를 여세요. 코드를 붙여 넣고, 조직, 팀, 접근 범위를 선택한 다음 지문을 확인하세요.
  3. 표시된 조직과 팀이 맞는지 컴퓨터에서 확인하세요.
  4. 실행기가 온라인 상태인지 확인하고, Nessie에서 실행기의 기능을 검토한 다음, 사용할 에이전트에게 접근 권한을 부여하세요.

코드는 10분 뒤 만료되며 한 번만 사용할 수 있습니다. 다른 팀을 페어링하려면 login 명령 또는 팀 추가를 다시 실행하세요. 각 연결에는 고유한 기기 키, 폴더, 명령 규칙, 시작 서비스가 있습니다.

nessie-executor teams
nessie-executor permissions --executor <executor-id>
nessie-executor permissions --executor <executor-id> --allow-all --deny "git push *"
nessie-executor permissions --executor <executor-id> --allow "git *,pnpm *"

모든 명령은 기본적으로 허용되며, 구조적 안전 검사를 거칩니다. 로컬 거부 목록은 허용 목록보다 우선합니다. 폴더와 명령 권한은 이 컴퓨터에만 저장되며, Nessie에서는 바꿀 수 없습니다. Nessie는 팀 안에서 어떤 사람과 에이전트가 이 연결을 사용할 수 있는지만 정합니다. 권한을 바꾸기 전에 로컬 데몬을 중지하고, 바꾼 뒤 다시 시작하세요.

에이전트는 이 명령 규칙이 허용하는 범위에서, 이 컴퓨터의 대화형 터미널에 Codex, Gemini, Claude, 셸 또는 설치된 다른 프로그램을 시작할 수도 있습니다. 그 밖의 프로그램은 기본 설정되어 있지 않습니다. 이런 프로그램은 같은 계정으로 이미 설치되고 로그인되어 있어야 하며, macOS와 Linux에는 tmux가 필요합니다. 터미널 프로그램은 OS 계정의 접근 권한을 가지며, 그 폴더는 샌드박스가 아닙니다. 샌드박스 처리된 command.run에는 별도로 게스트 런타임이 필요합니다.

시작, 상태, 업데이트

대화형 login은 페어링을 확인한 뒤 자동 시작을 켭니다. macOS에서는 launchd 에이전트가 로그인할 때 해당 팀을 시작합니다. Linux에서는 systemd 사용자 서비스와 lingering 설정이 로그아웃과 재부팅 후에도 연결을 유지합니다.

nessie-executor status
nessie-executor enable <executor-id>
nessie-executor disable <executor-id>

disable은 페어링과 권한을 삭제하지 않고 서비스만 중지합니다. 포그라운드 세션으로 실행하려면 먼저 서비스를 비활성화한 다음 nessie-executor daemon --executor <executor-id>를 사용하세요. --state-dir를 명시해 만든 페어링은 포그라운드 감독 방식을 사용합니다.

Mac CLI 로그는 ~/Library/Logs/NessieExecutor/<executor-id>.log에 있습니다. Linux 로그는 journalctl --user -u nessie-executor@<executor-id>로 확인할 수 있습니다.

패키지 관리자로 업그레이드하세요:

brew upgrade nessie-executor
sudo apt-get update && sudo apt-get install --only-upgrade nessie-executor
sudo dnf upgrade nessie-executor

Windows에서는 winget upgrade --exact --id UnlikeOtherAI.NessieExecutor를 사용하세요. 업그레이드한 뒤에는 각 CLI 서비스를 disable한 다음 enable로 다시 시작하세요. CLI 페어링 키와 로컬 권한은 ~/.local/state/nessie-executor/에 있습니다. 데스크톱 앱은 상태를 계정의 애플리케이션 데이터 디렉터리에 보관합니다. 둘 다 설치된 패키지 바깥에 있으므로 업그레이드해도 유지됩니다.

소프트웨어를 제거하려면 모든 CLI 서비스를 비활성화하거나, 앱의 로그인 시 실행 설정을 끄고 앱을 종료한 다음, 같은 패키지 관리자로 제거하세요. 제거해도 페어링 상태는 보존됩니다. 연결 끊기 또는 삭제로 Nessie에서 실행기를 정리해야 접근이 해지됩니다. 로컬 파일만 삭제해서는 서버 기록이 해지되지 않습니다.

로컬 설정에 대한 자세한 내용은 로컬 제어를 참조하세요.