일반 텍스트 원장은 완전한 통제권을 제공하면서도 최신 상태를 유지하는 데 번거로움이 될 수 있습니다.

카메라 롤에는 영수증이 기다리고 있습니다. 은행 거래는 검토를 위해 쌓여 갑니다. 간단한 질문에도 쿼리가 필요하고, 작은 수정은 컴퓨터 앞으로 돌아갈 때까지 기다려야 합니다. 이러한 작업 각각은 그 자체로 어렵지 않습니다. 하지만 함께 쌓이면 신뢰할 수 있는 원장이 실제 생활을 따라잡지 못할 만큼의 마찰을 만들어 냅니다.
이것이 2026년 동안 우리가 해결해 온 문제입니다.
Beancount.io v3는 기반을 마련했습니다: 장부는 일반 텍스트로 작성되고, 모든 변경 사항은 Git 기록을 가지며, 데이터는 이식 가능한 상태로 유지됩니다. 3.6에서는 어떤 일이 발생했을 때 그것이 원장의 신뢰할 수 있는 항목이 되기까지의 거리를 줄이는 데 집중했습니다—투명성을 블랙박스로 대체하지 않으면서 말입니다.
첫 번째 병목 지점: 데이터를 원장으로 가져오기

수동 입력은 정확하지만, 부기 백로그가 시작되는 지점이기도 합니다. 금융 데이터는 일반적으로 불편한 형태로 도착합니다: PDF 명세서, 은행의 스프레드시트, 종이 영수증, 또는 계정과목표를 모르는 거래 피드 같은 형태입니다.
우리는 Smart Import를 출시하면서 시작했습니다. 이 기능은 명세서, 스프레드시트, 영수증, 이미지를 구조화된 Beancount 항목으로 변환합니다. 행을 복사하고 구문을 수정하는 대신, 편집 가능한 결과를 검토하고 원장에 포함할 항목을 결정합니다.
Plaid를 이용한 Bank Sync는 이제 동일한 원칙을 따릅니다. 원장에 이미 있는 계정으로 거래를 매핑하고 카테고리를 제안할 수 있지만, 최종 결정은 사용자에게 달려 있습니다. 지난 몇 달 동안 우리는 은행 및 계정별 필터, 연결된 계정 공유에 대한 제어, 계정별 통화, 가져온 항목의 대상 파일 선택 기능을 추가했습니다.
영수증 캡처가 전체 흐름을 완성합니다. 웹에서 영수증을 업로드하거나 모바일 앱에서 촬영하면, Beancount.io가 유용한 세부 정보를 추출하고 검토할 거래를 준비합니다. 자동화는 전사 작업을 처리하고, 회계 판단은 사용자에게 남습니다.
두 번째 병목 지점: 이해를 행동으로 전환하기
올해 초, Ask AI는 읽기 전용 분석가였습니다. 잔액, 지출, 계정 내역에 대한 질문에 답할 수 있었지만, 원장을 변경해야 하는 지점에서 멈췄습니다.
그 경계는 안전했지만 항상 유용하지는 않았습니다. 어시스턴트가 잘못 분류된 지출을 발견해도, 사용자는 여전히 대화를 떠나 올바른 파일을 찾아 편집하고 결과를 직접 확인해야 했습니다.
6월에 Ask AI는 작업 가능한 에이전트가 되었습니다. 이제 BQL 쿼리를 실행하고, 파일을 검사하고, 업로드된 영수증을 읽고, 원장 편집을 준비할 수 있습니다. 어떤 것이 기록되기 전에 제안된 변경 사항을 보고 승인하거나 거부할 수 있습니다. 승인된 편집은 일반적인 Git 커밋이 되어, 가시적이고 검토 가능하며 되돌릴 수 있게 유지됩니다.
그런 다음 우리는 동일한 기능을 사용자들이 이미 사용하는 도구에 열었습니다. Beancount MCP 서버는 원장을 Claude, Cursor, Windsurf, Zed 및 기타 MCP 호환 클라이언트와 원장 범위의 OAuth 2.1을 통해 연결합니다. 장부 사본을 다른 워크플로로 내보낼 필요 없이 금융 질문을 하거나 편집을 준비할 수 있습니다.
핵심은 AI가 조용히 재정을 운영하게 하는 것이 아닙니다. 기계적 작업은 AI가 처리하고, 인간의 승인과 Git 기록은 중심에 두는 것입니다.
책상에서 벗어나도 회계는 멈추지 않아야 합니다

모바일 앱은 그 약속의 가장 약한 부분이었습니다. 유용한 정보를 표시할 수는 있었지만, 실제 작업의 상당수는 여전히 웹 대시보드가 필요했습니다. 이번 여름, 우리는 책상 밖에서 실제로 수행해야 하는 작업에 맞춰 앱을 재구축했습니다.
새로운 홈 화면은 중요한 계정과 트렌드를 먼저 보여줍니다. 계정은 이제 드릴다운과 신규 계정 개설을 지원합니다. 거래는 상태, 날짜, 계정별로 검색하고 필터링할 수 있으며, 다중 분개 입력이 기본 흐름이고, 기존 거래는 편집하거나 삭제할 수 있습니다. 보고서는 수입, 지출, 대차대조표 보기를 별도의 탭에 흩어 놓는 대신 하나로 통합합니다.
앱은 영수증 스캔, 계정 제안, Beancount 파일 탐색 및 편집, 원장 오류 표시, 최근 Git 변경 사항 표시, 예산 추적도 지원합니다. 다중 통화 금액은 더 명확해졌고, 차트는 터치에 반응하며, 원장 서랍은 개인, 사업, 공유 장부 간 전환을 더 쉽게 만듭니다.
가장 중요한 변경 사항 중 일부는 의도적으로 덜 가시적입니다. 세션 자격 증명은 이제 운영 체제의 키체인 또는 키스토어에 저장됩니다. 로딩, 다크 모드, 탐색, 당겨서 새로고침 동작도 새 화면만큼 주목받았습니다. 앱은 계속해서 13개 언어를 지원합니다.
이제 더 이상 잔액을 확인하기 위한 단순한 동반 앱이 아닙니다. 기반 활동이 발생하는 곳 어디서든 원장을 유지 관리하는 실용적인 방법입니다.
웹에서 요소를 하나로 통합하기

가져오기, AI, 모바일이 더 강력해짐에 따라, 웹 대시보드도 기능 모음이 아닌 하나의 작업 공간처럼 느껴져야 했습니다.
대시보드는 이제 사용자 정의 가능한 개요, 더 간단한 탐색, 더 명확한 첫 실행 안내, 계정 개설 및 폐쇄, 대량 분개 작업, 예산 내역, 영수증 업로드, 분개 계정에서 보고서로의 직접 링크를 제공합니다. Smart Import, Bank Sync, Ask AI, 파일, 보고서, 버전 기록은 이제 더 일관된 흐름과 시각적 정체성을 공유합니다.
그 인터페이스 뒤에서 우리는 대시보드를 서버 측 렌더링으로 전환하고, 인증 상태를 PostgreSQL과 Redis로 마이그레이션하고, 로그인 및 Git 엔드포인트 주변의 보호를 강화하고, 핵심 워크플로에 대한 자동화된 테스트를 확장했습니다. 또한 Rust/WASM 엔진으로 구동되는 새로운 TypeScript 원장 서비스를 구축하고 동등성 테스트를 수행했습니다. 그 프로덕션 전환은 신중하게 단계적으로 진행되고 있으며, 기존 Python 서비스는 베이크인 기간 동안 롤백 경로로 유지됩니다.
이상적으로는 이러한 인프라에 대해 생각할 필요가 없어야 합니다. 더 적은 지연, 더 적은 놀라움, 그리고 웹, 모바일, Git, AI 전반에 걸쳐 일관되게 작동하는 제품을 만나기만 하면 됩니다.
3.6이 정말로 의미하는 것
개별 기능도 중요하지만, 더 큰 변화는 그것들을 연결하는 워크플로입니다.
거래는 은행 피드, 문서, 모바일 사진, 양식, 텍스트 편집기 또는 AI 어시스턴트와의 대화에서 시작될 수 있습니다. 그럼에도 그것은 항상 같은 곳에서 끝납니다: 감사 가능한 Git 기록이 있는 일반 텍스트 Beancount 파일입니다. 편리함이 더 이상 이식성이나 통제력을 희생할 필요는 없습니다.
이것이 3.6의 약속입니다.
4.0을 향해: 완전한 오픈소스
Beancount.io 4.0의 목표는 더 큽니다: 전체 Beancount.io 제품을 오픈소스로 만드는 것입니다.
웹 대시보드와 모바일 앱은 이미 CLI, 보고 도구, 코딩 에이전트용 스킬과 함께 공개적으로 개발되고 있습니다. 남은 주요 부분은 이러한 클라이언트를 호스팅된 원장에 연결하는 백엔드입니다. 그것을 여는 것은 제품 아키텍처를 Beancount.io가 처음부터 지켜온 원칙에 더 가깝게 만들 것입니다: 금융 데이터를 소유할 수 있다면, 그것을 관리하는 소프트웨어도 검사하고 형성하는 데 기여할 수 있어야 합니다.
4.0까지는 여전히 엔지니어링과 문서 작업이 남아 있습니다. 우리는 결과물이 단순한 소스 덤프가 아니라 기여자들이 이해하고 유지 관리하며 유용하게 사용할 수 있기를 바랍니다. Beancount.io 3.6은 그 미래를 향한 중요한 단계입니다: 오늘날 오픈 포맷 위에 구축되고 완전히 오픈된 스택을 향해 나아가는 하나의 일관된 금융 작업 공간입니다.
공개적으로 4.0을 만드는 데 함께해 주세요
Beancount.io 3.6은 beancount.io에서 이용할 수 있습니다. 완전히 오픈소스인 금융 스택을 보고 싶다면 GitHub에서 Beancount.io에 스타를 눌러 주세요. 스타 하나하나가 더 많은 개발자, 회계 전문가, 일반 텍스트 회계 사용자가 프로젝트를 발견하도록 돕고, 여러분이 4.0을 향한 과정을 가까이서 지켜볼 수 있게 합니다.