TL;DR

  • Herbarium은 AI 도구가 생성한 HTML 페이지를 상호작용을 유지한 채 저장·검색·검토할 수 있으며, 페이지를 사용자가 소유한 폴더의 일반 .html 파일로 보관하는 데스크톱 리더임.
  • 페이지를 드래그 앤 드롭, 파일 선택기 또는 붙여넣기로 가져오고, 제목·태그·메모·페이지 텍스트를 검색할 수 있음.
  • 샌드박스 뷰어에서 스크립트를 포함한 페이지를 읽고, 앱이나 외부 편집기에서 HTML을 편집할 수 있음.
  • 페이지별 네트워크 접근을 설정할 수 있으며, 허용 시 CDN의 스크립트·글꼴과 웹사이트의 이미지가 로드될 수 있고 페이지 작성자에게 열람 사실이 전달될 수 있음.
  • Tauri 2, Rust, SQLite, Svelte 5로 구축되며, MCP 서버 기능으로 AI 에이전트가 페이지를 저장·검색·정리·검토 일정에 등록할 수 있음.

Herbarium

  • AI 도구가 생성한 HTML 페이지를 저장하고 나중에 찾아 상호작용 기능을 유지한 채 열며, 필요한 시점에 다시 표시되도록 검토 일정을 설정하는 데스크톱 리더임.
  • 페이지는 사용자가 소유한 폴더에 일반 .html 파일로 보관됨.

설치

  • Linux(x86_64 및 arm64)에서는 다음 설치 스크립트를 실행함: curl -fsSL https://raw.githubusercontent.com/abdoufermat5/herbarium/main/install.sh | sh.
  • Debian/Ubuntu에서는 .deb 패키지를 설치하며 sudo 권한을 요청하고, 그 외 환경에서는 AppImage를 설치함.
  • sh -s -- --appimage를 전달하면 sudo 없이 설치할 수 있고, sh -s -- --uninstall을 전달하면 제거할 수 있음.
  • macOS 및 Windows에서는 릴리스 페이지에서 다운로드함. 빌드에 아직 코드 서명이 없으므로 첫 실행 시 macOS의 시스템 설정 → 개인정보 보호 및 보안에서 허용하거나, Windows에서 추가 정보 → 그래도 실행을 선택해야 함.

기능

  • 드래그 앤 드롭, 파일 선택기 또는 붙여넣기로 가져오기.
  • 제목, 태그, 메모 및 페이지 텍스트 검색.
  • 폴더, 태그 및 메모로 정리하고 여러 페이지를 한 번에 이동하거나 편집.
  • 스크립트를 포함해 각 페이지를 샌드박스 뷰어에서 읽기.
  • 앱 또는 사용자가 선택한 편집기에서 HTML 편집.
  • 원하는 일정에 따라 알림과 키보드 중심 검토 세션으로 페이지 검토.
  • 복원 및 실행 취소 기능이 있는 휴지통.
  • 명령 팔레트(Ctrl/⌘ K); ? 키로 전체 단축키 확인.
  • 라이트 및 다크 테마, 영어 및 프랑스어.

보관함

  • 보관함은 일반 폴더임. 각 페이지는 .html 파일로 저장되며, 제목·태그·메모·검토 날짜를 담은 .json 파일이 함께 놓임.
  • 폴더는 실제 디렉터리임. 보관함을 백업·동기화하거나 어떤 도구로든 편집할 수 있으며, 창으로 돌아오면 Herbarium이 변경 사항을 반영함.

안전

  • 생성된 HTML은 코드를 실행하므로 모든 페이지를 신뢰할 수 없는 콘텐츠로 취급함.
  • 페이지는 파일, 앱 또는 다른 페이지에 접근할 수 없고 다른 곳으로 이동할 수도 없는 샌드박스에서 실행됨. 링크는 사용자가 확인한 뒤에만 브라우저에서 열림.
  • 네트워크 접근은 페이지별로 설정함. 네트워크를 켜면 잘 알려진 CDN의 스크립트와 글꼴, 모든 웹사이트의 이미지를 불러올 수 있으며, 페이지를 열었을 때 작성자에게 알릴 수 있음.
  • 신뢰하지 않는 페이지에서는 네트워크 접근을 꺼 두는 방식임.

AI 에이전트와 함께 사용

  • Herbarium은 MCP 서버이기도 하므로 에이전트가 페이지를 저장·검색·정리하고 검토 일정을 설정할 수 있음.
  • Claude Code에서는 claude mcp add herbarium -- herbarium mcp 명령으로 서버를 추가함.
  • 예를 들어 에이전트에게 Cargo 워크스페이스를 설명하는 짧은 HTML을 작성해 Rust 폴더에 저장하도록 요청할 수 있음.
  • 앱에서 마지막으로 열었던 보관함을 사용하며, 다른 경로를 지정할 때는 --vault <path>를 사용함.

개발

  • 필요한 구성 요소는 Node.js, pnpm, Rust 및 Tauri 사전 요구 사항임.
  • pnpm install로 의존성을 설치하고, pnpm tauri dev로 앱을 실행하며, make ci로 CI 검사 전체를 수행함.
  • Tauri 2, Rust, SQLite, Svelte 5로 구축됨.

릴리스

  • 변경 사항을 CHANGELOG.md의 [Unreleased] 아래에 작성한 뒤 pnpm release patch를 실행함. 버전 유형은 minor, major 또는 x.y.z로 지정할 수도 있음.
  • git push --follow-tags로 푸시하면 태그가 모든 플랫폼용 빌드를 시작하고 릴리스를 게시함.
  • 앱 내 업데이트에는 저장소에 서명 키 쌍이 필요함: HERBARIUM_UPDATER_PUBLIC_KEY 변수와 TAURI_SIGNING_PRIVATE_KEY 시크릿임.
  • pnpm tauri signer generate로 서명 키를 생성함.

라이선스

  • MIT 라이선스임.