본문으로 건너뛰기
로그인 둘러보기
생산성·자동화 · 윈도우즈 유틸

shelldone

0

shelldone은 장기 실행 명령어의 완료를 감지하여 데스크톱 알림, 사운드, 음성 알림 및 Slack, Discord, Telegram 등 외부 채널로 알림을 보내는 크로스플랫폼 터미널 알림 시스템입니다.

AI CLI 통합Windows데스크톱 알림명령어 완료 감지외부 채널 연동터미널 알림

소개

shelldone은 장기 실행 명령어의 완료를 감지하여 데스크톱 알림, 사운드, 음성 알림 및 Slack, Discord, Telegram 등 외부 채널로 알림을 보내는 크로스플랫폼 터미널 알림 시스템입니다. bash 및 zsh에서 작동하며 Windows에서는 Git Bash, WSL, MSYS2 또는 Cygwin 환경에서 지원됩니다. 개발자 및 시스템 관리자가 빌드, 배포, 테스트 등의 작업 완료를 놓치지 않도록 실시간 알림을 제공합니다.

상세정보

자동 알림

셸 통합 후 기본적으로 10초 이상 실행되는 명령어는 자동으로 알림을 트리거합니다. 사용자는 SHELLDONE_THRESHOLD 환경 변수를 통해 이 임계값을 조정할 수 있습니다. vim, ssh 등과 같은 특정 명령어는 기본적으로 제외 목록에 포함되어 불필요한 알림을 방지합니다.

명시적 알림 wrapper

alert <command> 명령을 통해 어떤 명령어든 명시적으로 알림을 받을 수 있습니다. 예를 들어 alert make build 또는 alert npm test와 같이 사용하면 명령어 완료 시 알림이 전송되며, 원래의 종료 코드는 보존됩니다.

외부 채널 연동

Slack, Discord, Telegram, Email, WhatsApp 및 웹훅으로 알림을 보낼 수 있습니다. 각 채널별로 웹훅 URL을 설정하고 shelldone webhook test <채널> 명령으로 연결을 확인할 수 있습니다. 외부 알림은 터미널이 포커스 상태라도 전송됩니다.

AI CLI 통합

Claude Code, Codex CLI, Gemini CLI, Copilot CLI 및 Cursor와 같은 AI 코딩 어시스턴트와 통합되어 작업 완료 시 알림을 보냅니다. shelldone setup ai-hooks 명령으로 모든 지원되는 AI CLI에 대한 후크를 자동 설치할 수 있으며, 개별적으로 shelldone setup claude-hook 등과 같이 설치할 수도 있습니다.

알림 제어

사용자는 shelldone mute 명령으로 특정 채널 또는 모든 알림을 일시적으로 음소거할 수 있습니다. 예를 들어 shelldone mute slack 2h는 Slack 알림을 2시간 동안 음소거합니다. shelldone schedule 22:00-08:00로 매일 조용한 시간을 설정할 수 있으며, shelldone toggle sound off로 사운드를 비활성화하면서 데스크톱 알림은 유지할 수 있습니다.

다운로드·설치 방법

Windows 사용자는 Scoop을 통해 shelldone을 설치할 수 있습니다. 먼저 Scoop 버킷을 추가한 후 패키지를 설치합니다:

scoop bucket add shelldone https://github.com/nareshnavinash/scoop-bucket
scoop install shelldone

Chocolatey 패키지는 현재 검토 중이며 곧 제공될 예정입니다. 소스에서 직접 설치하려면 저장소를 클론하고 설치 스크립트를 실행합니다:

git clone https://github.com/nareshnavinash/shelldone.git
cd shelldone
./install.sh

설치 후 셸 초기화를 위해 .bashrc 또는 .zshrc에 다음 줄을 추가해야 합니다:

eval "$(shelldone init bash)"   # for bash
eval "$(shelldone init zsh)" # for zsh

또는 shelldone setup 명령을 통해 인터랙티브 설정 마법사를 실행하여 셸 통합, 알림 기본 설정, 외부 채널 구성 및 AI CLI 후크 설정을 한 번에 완료할 수 있습니다.

기본 사용법/명령어

설치 및 셸 통합 후 shelldone은 백그라운드에서 동작하며 기본적으로 10초 이상 실행되는 명령어에 대해 자동 알림을 제공합니다. 사용자는 다음과 같이 명령어를 실행할 수 있습니다:

  • shelldone status: 현재 설정, 플랫폼 정보 및 통합 상태를 진단합니다.
  • shelldone test-notify: 모든 구성된 알림 채널로 테스트 알림을 보냅니다.
  • shelldone sounds: 현재 플랫폼에서 사용 가능한 시스템 사운드 목록을 보여줍니다.
  • shelldone exclude list: 자동 알림에서 제외된 명령어 목록을 확인합니다.
  • shelldone exclude add vim: 특정 명령어를 제외 목록에 추가합니다.
  • shelldone mute 30m: 모든 알림 채널을 30분 동안 음소거합니다.
  • shelldone unmute: 음소거된 모든 알림 채널을 다시 활성화합니다.
  • shelldone toggle desktop off: 데스크톱 알림을 비활성화하면서 다른 채널은 유지합니다.
  • shelldone schedule 22:00-08:00: 매일 오후 10시부터 오전 8시까지 알림을 차단하는 조용한 시간을 설정합니다.

이런 경우에 유용합니다

빌드나 테스트가 몇 분씩 걸리는 프로젝트에서 작업 중인 개발자는 터미널을 떠나 다른 작업을 하다 알림을 놓치는 경우가 많습니다. shelldone은 이러한 상황에서 데스크톱 알림이나 사운드로 작업 완료를 알려주어 컨텍스트 스위칭 중에도 작업 상태를 인지할 수 있도록 도와줍니다. 또한 원격 서버에서 배포 스크립트를 실행하는 시스템 관리자는 슬랙이나 디스코드 채널로 알림을 받아 배포 완료를 즉시 확인할 수 있습니다.

지원 환경·시스템 요구사항

Windows에서는 Git Bash, WSL(Windows Subsystem for Linux), MSYS2 또는 Cygwin 환경에서 shelldone을 사용할 수 있습니다. 네이티브 Windows 명령 프롬프트(CMD) 또는 PowerShell에서는 직접 지원되지 않으나, WSL을 통해 Linux 환경을 이용하면 동일하게 사용할 수 있습니다. 외부 알림 채널(Slack, Discord 등)을 사용하려면 시스템에 curl 또는 wget가 설치되어 있어야 HTTPS 요청을 보낼 수 있습니다.

최신 버전·업데이트

현재 버전은 1.3.1이며, 저장소의 릴리스 페이지에서 최신 변경 사항을 확인할 수 있습니다. 프로젝트는 지속적인 통합(CI)을 통해 macOS, Linux 및 Windows 플랫폼에서 자동 테스트를 수행하고 있습니다.

제한 사항·확인 사항

shelldone은 네이티브 Windows 명령 프롬프트(CMD) 또는 PowerShell에서는 직접 작동하지 않습니다. Windows에서 사용하려면 Git Bash, WSL, MSYS2 또는 Cygwin과 같은 POSIX 호환 셸 환경이 필요합니다. 또한 알림 기능을 위해 시스템에 libnotify-bin(Linux), osascript(macOS) 또는 BurntToast(Windows PowerShell 모듈)와 같은 백엔드 알림 시스템이 필요할 수 있으며, 이는 설치 과정에서 자동으로 감지 및 안내됩니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.