본문으로 건너뛰기
피드

순수 Bash로 만든 터미널 할 일 관리자, Tashk

open-source 약 5분
vote
0
댓글
북마크

Tashk는 Bash 4 이상과 표준 POSIX 도구만으로 돌아가는 미니멀 터미널 할 일 관리자다. 작업 CRUD, 프로젝트 태그, 마감일, 통계, 달력, CSV 저장소까지 갖췄지만 JSON, 데이터베이스, npm 설치는 전혀 쓰지 않는다.

  • 1

    순수 Bash로 작성된 터미널 기반 할 일 관리자

  • 2

    작업 추가·수정·삭제, 프로젝트 이동, 완료 상태, 마감일, 통계, 달력 기능 제공

  • 3

    저장소는 기본적으로 ~/.tasks CSV 파일이고 설정은 ~/.tashkrc key=value 파일을 사용

  • 4

    GNU date와 BSD date를 자동 감지해 리눅스와 macOS 계열 이식성을 챙김

  • Tashk는 “그냥 Bash로 어디까지 만들 수 있나”에 가까운 터미널 할 일 관리자임

    • Bash 4 이상과 표준 POSIX 도구만 있으면 돌아감
    • JSON, 데이터베이스, npm 설치 같은 건 없음
    • 이름도 task와 bash를 섞은 말장난인데, 프로젝트 성격 자체가 꽤 셸 덕후 감성임
  • 기능은 장난감치고 꽤 갖춰져 있음

    • 작업 추가, 수정, 삭제, 이름 변경 같은 기본 CRUD를 지원함
    • @project 태그로 작업을 프로젝트별로 묶을 수 있음
    • 상태는 TODO와 DONE으로 관리하고, 완료 시각도 자동으로 남김
    • 마감일을 넣으면 지난 작업을 시각적으로 경고해줌
  • 터미널 도구답게 출력 쪽도 신경 썼음

    • 프로젝트별 완료율을 막대 형태로 보여주는 통계 화면이 있음
    • 월간 달력으로 마감 작업을 볼 수 있고, 월말에 가까워지면 다음 달도 자동으로 보여줌
    • 완료는 초록색, 마감 초과는 노란색, 프로젝트는 파란색처럼 ANSI 색상을 활용함

💡

> 이런 류의 도구는 “내가 매일 쓸 생산성 앱”이라기보다, Bash로 상태 관리와 파일 저장, 날짜 처리를 어떻게 엮는지 보는 샘플로 읽으면 더 재밌음.

  • 저장 방식은 일부러 단순하게 잡았음

    • 기본 데이터 파일은 ~/.tasks CSV 파일임
    • 설정은 ~/.tashkrc에 key=value 형태로 저장됨
    • 런타임에서는 모든 작업을 Bash 배열에 올렸다가 변경 시 CSV로 다시 씀
    • CSV 필드는 id, status, create_date, end_date, due_date, project, object의 7개 구조임
  • 날짜 이식성도 챙긴 점이 포인트임

    • 리눅스의 GNU date와 macOS·BSD 계열 date는 옵션이 다르게 동작하는 경우가 많음
    • Tashk는 시작 시점에 GNU/BSD date를 감지해서 포터블하게 처리함
    • 작은 CLI 도구라도 날짜가 들어가는 순간 플랫폼 차이가 바로 튀어나온다는 걸 보여주는 대목임
  • 명령어 인터페이스는 셸 도구답게 직관적인 편임

    • tashk add "buy milk"처럼 작업을 추가함
    • tashk <UUID> done으로 완료 처리하고, todo로 되돌릴 수 있음
    • tashk @project add "task description"처럼 프로젝트 기준으로도 작업을 다룸
    • stats, calendar, calendar next, calendar 2026/12 같은 조회 명령도 있음
  • MIT 라이선스라 뜯어보고 고쳐 쓰기 좋음

    • 개인용 할 일 관리자라기보다, 셸 스크립트로 작은 상태ful 앱을 만드는 레퍼런스에 가까움
    • 특히 Bash associative array, CSV 파싱, ANSI 출력, 날짜 호환성 처리에 관심 있으면 코드 읽는 맛이 있을 듯

기술 맥락

  • Tashk가 고른 핵심 선택은 “데이터베이스 없이 CSV, 런타임 상태는 Bash 배열”이에요. 할 일 관리자는 데이터 모델이 단순하니까 SQLite 같은 걸 붙이지 않아도 충분히 굴러가거든요.

  • 대신 이 선택은 장단점이 분명해요. CSV는 사람이 직접 열어보고 백업하기 쉽고 awk, sed, cut 같은 도구와 잘 맞아요. 반대로 동시 수정, 복잡한 검색, 필드 안의 특수문자 처리 같은 문제는 앱이 직접 조심해야 해요.

  • GNU date와 BSD date를 감지하는 부분도 현실적인 선택이에요. 날짜 계산은 CLI에서 자주 필요하지만, 리눅스와 macOS가 같은 명령어 이름으로 다른 옵션을 받는 경우가 많거든요. 작은 도구라도 여러 개발자 환경에서 쓰려면 이런 차이를 피할 수 없어요.

  • 그래서 Tashk는 “Bash로 만든 투두 앱”보다 “셸 철학으로 만든 작은 로컬 앱”에 가까워요. 입력과 출력은 텍스트고, 저장소도 텍스트고, 설치도 심볼릭 링크나 alias면 끝나는 구조라서요.

거대한 생산성 앱의 반대편에 있는 장난감 같은 프로젝트지만, 셸 철학을 좋아하는 개발자에게는 꽤 매력적인 예제다. Bash 배열, ANSI 출력, CSV 영속화, 날짜 호환성 같은 현실적인 잡기술이 한 파일 안에 모여 있다.

댓글

댓글

댓글을 불러오는 중...

open-source

차세대 데이터 파일 포맷 F3, 디코더를 Wasm으로 파일 안에 넣자는 실험

F3는 Parquet, ORC 같은 기존 컬럼형 파일 포맷의 한계를 줄이기 위해 제안된 오픈소스 연구 프로토타입이다. 핵심 아이디어는 데이터와 메타데이터뿐 아니라 WebAssembly(Wasm) 디코더까지 파일에 함께 넣어, 새 인코딩 방식이 나와도 플랫폼 호환성을 유지하자는 것이다.

open-source

에코백스, 1,134만원짜리 오픈소스 가정용 로봇 ‘빠졔’ 판매 시작

중국 청소 로봇 기업 에코백스가 첫 오픈소스 로봇 ‘빠졔’를 정식 판매하기 시작했음. 가정용 로봇을 개발자가 직접 조율하고 프로그래밍하고 2차 개발할 수 있게 만든 플랫폼이고, 가격은 4만9990위안, 약 1,134만원 수준임.

open-source

BMW·폭스바겐·스텔란티스, 자동차 소프트웨어 오픈소스 동맹 키운다

BMW, 폭스바겐그룹, 스텔란티스 등 유럽 완성차 업체들이 소프트웨어 정의 자동차(SDV) 경쟁력 강화를 위해 오픈소스 공동 개발에 나서고 있다. 독일자동차산업협회 주도 프로젝트에는 완성차, 부품사, 반도체 기업 등 30개 이상 기업이 참여하며 차량 OS, 미들웨어, 통신 소프트웨어 같은 공통 영역을 함께 만든다. 기대 효과는 개발·유지 비용 최대 40% 절감, 차량 개발 기간 최대 30% 단축이다.

open-source

AI 시대 오픈소스, ‘공개됐으니 막 써도 됨’은 진짜 위험한 착각

생성형 AI 서비스가 오픈소스 코드, 모델, 데이터셋, 외부 API를 섞어 쓰면서 라이선스와 이용 조건 관리가 훨씬 복잡해졌다는 내용이다. 공개된 기술이라도 저작권과 사용 조건은 남아 있고, 기업은 제품 안에 무엇이 들어갔는지 지속적으로 추적해야 한다.

open-source

에코백스, 1,134만원짜리 오픈소스 가정용 로봇 ‘빠졔’ 출시

중국 청소 로봇 기업 에코백스가 첫 오픈소스 로봇 ‘빠졔’를 판매하기 시작했다. 개발자가 로봇의 동작, 조작, 환경 인식 기능을 기반으로 임바디드 인텔리전스 애플리케이션을 만들고 상용화할 수 있게 하겠다는 전략이다.