GitHub - googlecolab/google-colab-cli
Service

GitHub - googlecolab/google-colab-cli

googlecolab
2026.06.09
·GitHub·by Homin.Lee
#Agent#AI#DL#ML#RAG

핵심 포인트

  • 1Colab CLI는 Google Colab의 high-performance CPU, GPU, TPU 런타임을 터미널에서 직접 프로비저닝하고 제어하며, 로컬 코드 실행 및 원격 파일 관리를 가능하게 하는 command-line interface입니다.
  • 2이 도구는 `colab run`을 통한 ephemeral job 실행, 자동 keep-alive 기능, Google Drive 마운트 및 GCP 인증 등 개발 생산성과 headless automation을 위한 광범위한 기능을 제공합니다.
  • 3Colab CLI는 Linux 및 macOS를 지원하며, 로컬 스크립트 실행부터 대규모 AI agent 통합 및 자동화된 클라우드 파이프라인 오케스트레이션까지 원격 Colab 환경 활용을 간소화합니다.

Google Colab CLI는 Google Colab의 고성능 CPU, GPU, TPU 런타임을 터미널에서 직접 프로비저닝하고, 로컬 코드를 실행하며, 원격 파일을 관리하고, 자동화된 클라우드 파이프라인을 오케스트레이션할 수 있는 명령줄 인터페이스입니다. 개발자의 생산성 향상, 헤드리스 자동화, AI 에이전트 통합을 위해 설계되었습니다. 현재 Linux 및 macOS를 지원하며, Windows는 지원되지 않습니다.

주요 기능은 다음과 같습니다:

  • 즉각적인 VM 프로비저닝 (Instant VM Provisioning): T4, L4, G4, H100, A100 GPU 또는 v5e1, v6e1 TPU를 포함한 CPU 런타임을 몇 초 내에 시작할 수 있습니다.
  • 강력한 코드 실행 (Robust Code Execution): 로컬 Python 스크립트, Jupyter Notebook(.ipynb), 파이프된 stdin 코드 등을 실행하거나, 대화형 REPL(Read-Eval-Print Loop) 또는 원시 TTY 콘솔 셸을 실행할 수 있습니다.
  • 임시 작업 실행기 (Ephemeral Job Runner, colab run): 새로운 VM을 프로비저닝하고, 인수가 전달된 로컬 스크립트를 실행한 다음, 결과 파일을 검색하고 런타임을 자동으로 해체하는 단일 명령을 제공합니다.
  • 자동 Keep-Alive (Automatic Keep-Alive): 내장된 백그라운드 데몬이 유휴 VM 종료를 자동으로 방지하여, 브라우저 탭을 열어두지 않아도 리소스 할당이 활성 상태를 유지하도록 합니다.
  • 원활한 워크스페이스 자동화 (Seamless Workspace Automation): Google Drive 마운트, Google Cloud Platform(GCP) 자격 증명 인증, 고성능 uv 패키지 관리자를 사용한 종속성 설치를 지원합니다.
  • 상태 및 로그 아카이빙 (State & Log Archival): 로컬 세션 상태를 검사하거나, 대화형 기록 로그를 표준 Jupyter Notebook, Markdown, 또는 구조화된 JSONL 형식으로 내보낼 수 있습니다.

핵심 방법론 및 기술적 세부사항:

Colab CLI는 Colab 백엔드와 상호작용하여 원격 컴퓨팅 리소스를 관리하고 제어합니다. 이는 크게 세션 관리, 코드 실행, 파일 작업, 자동화 및 유틸리티 기능으로 나눌 수 있습니다.

  1. 세션 관리 (Session Management):
    • colab new [-s NAME] [--gpu GPU] [--tpu TPU]: 이 명령은 Colab 백엔드에 새로운 가상 머신(VM) 런타임을 요청하여 할당합니다. 사용자는 CPU, 특정 GPU(예: A100), 또는 TPU(예: v5e1) 유형을 지정할 수 있습니다. 각 VM은 고유한 Jupyter 커널과 연결됩니다.
    • colab stop [-s NAME]: 지정된 세션의 VM을 종료하고, 해당 세션과 관련된 keep-alive 데몬을 해체하여 리소스를 해제합니다.
    • colab sessions, colab status, colab restart-kernel, colab url 등의 명령을 통해 활성 세션의 목록을 확인하고, 상태를 조회하며, 커널을 재시작하거나, 웹 UI 연결 URL을 얻을 수 있습니다. 세션 토큰 및 메타데이터는 기본적으로 ~/.config/colab-cli/sessions.json에 저장됩니다.
  1. 코드 실행 (Code Execution):
    • colab exec [-s NAME] [-f FILE]: 이 명령은 로컬의 Python 스크립트(.py), Jupyter Notebook(.ipynb) 파일의 내용을 읽거나, stdin으로 파이프된 코드를 원격 Colab VM의 Jupyter 커널로 전송하여 실행합니다. CLI는 파일을 먼저 원격 VM에 업로드할 필요 없이, 파일 내용을 직접 커널에 전달하여 실행 효율성을 높입니다.
    • colab repl [-s NAME]: 원격 VM에서 대화형 Python REPL 세션을 시작합니다. 로컬 터미널의 입력을 원격 REPL로 중계하고, 원격 REPL의 출력을 로컬 터미널로 다시 스트리밍하는 방식으로 동작합니다. 파이프된 EOF(End-Of-File) 시그널을 받으면 깔끔하게 종료됩니다.
    • colab console [-s NAME]: 원격 VM의 TTY(Teletypewriter) 셸에 직접 연결합니다. 이는 보통 tmux와 같은 멀티플렉서를 통해 제공되어, 원격 VM에서 직접 셸 명령을 실행할 수 있는 저수준 인터페이스를 제공합니다. repl 및 console과 같은 대화형 명령은 로컬 TTY가 필요합니다.
    • colab run [--gpu GPU] SCRIPT [ARGS...]: 이 명령은 임시 작업 실행기(Ephemeral Job Runner)의 핵심입니다. 새로운 VM을 생성하고, 사용자가 지정한 로컬 스크립트를 VM에 전달하여 실행하며, 스크립트 실행이 완료되면 VM을 자동으로 종료하고 리소스를 해제합니다. --keep 옵션을 통해 VM을 유지할 수도 있습니다. 이 기능은 단발성 배치 작업이나 스크립트 실행에 특히 유용하며, 수동적인 세션 생명주기 관리를 줄여줍니다. Shebang(#!/usr/bin/env -S colab run --gpu L4 --keep)을 통해 로컬 스크립트를 직접 원격 가속기에서 실행하도록 설정할 수도 있습니다.
  1. 파일 작업 (File Operations):
    • colab ls [-s NAME] [PATH]: 원격 VM의 파일 시스템에 있는 파일을 나열합니다.
    • colab upload [-s NAME] LOCAL REMOTE: 로컬 파일을 원격 VM 파일 시스템으로 업로드합니다.
    • colab download [-s NAME] REMOTE LOCAL: 원격 VM의 파일을 로컬로 다운로드합니다.
    • colab rm [-s NAME] PATH: 원격 파일을 삭제합니다.
    • colab edit [-s NAME] PATH: 로컬 EDITOR 환경 변수에 설정된 편집기를 사용하여 원격 파일을 인플레이스(in-place)로 편집할 수 있도록 지원합니다. 이는 파일을 다운로드, 편집, 업로드하는 과정을 자동화하여 원활한 원격 파일 편집 경험을 제공합니다. 이러한 파일 작업은 Jupyter Contents API를 활용하여 VM의 파일 시스템에 접근합니다.
  1. 자동화 및 유틸리티 (Automation & Utilities):
    • colab auth [-s NAME]: GCP 서비스(BigQuery, GCS 등)에 대한 VM 인증을 처리합니다. oauth2 또는 adc (Application Default Credentials) 인증 전략을 지원합니다.
    • colab drivemount [-s NAME] [PATH]: Google Drive를 원격 VM에 마운트합니다(기본 /content/drive).
    • colab install [-s NAME] PKG...: uv (또는 pip 폴백)를 사용하여 VM에 패키지를 설치합니다.
    • colab log [-s NAME]: 세션 기록을 ipynb, md, txt, jsonl 등의 형식으로 내보낼 수 있습니다.
    • 글로벌 옵션으로 --auth, --client-oauth-config, --config 등을 통해 인증 방식, OAuth 클라이언트 자격 증명 경로, 로컬 세션 메타데이터 저장 경로 등을 설정할 수 있습니다.

이러한 기능들은 명령줄 환경에서 Colab의 강력한 컴퓨팅 리소스를 활용하여 다양한 개발 및 자동화 워크플로우를 효율적으로 구축할 수 있게 합니다. 특히 AI 에이전트 통합 및 CI/CD 파이프라인에서의 활용이 강조됩니다.