پرش به محتوای اصلی

Beancount در مقابل hledger: کدام ابزار حسابداری متن-ساده برای شما مناسب است؟

· زمان مطالعه 10 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

اگر تصمیم گرفته‌اید امور مالی خود را با حسابداری متنی (Plain-Text Accounting) مدیریت کنید، همین حالا انتخاب هوشمندانه‌ای انجام داده‌اید. داده‌های مالی شما در فایل‌هایی با قابلیت خواندن توسط انسان ذخیره می‌شوند که کنترل کامل آن‌ها در دست شماست، توسط سیستم‌های کنترل نسخه ردیابی می‌شوند و از وابستگی به فروشندگان نرم‌افزاری خاص رها هستید. اما اکنون سوال بعدی پیش می‌آید: از کدام ابزار باید استفاده کنید؟

Beancount و hledger دو مورد از محبوب‌ترین ابزارهای حسابداری متنی (PTA) امروزی هستند. هر دو متن‌باز هستند، به طور فعال نگهداری می‌شوند و قادر به مدیریت همه‌چیز از بودجه‌بندی شخصی گرفته تا سبدهای سرمایه‌گذاری پیچیده هستند. با این حال، آن‌ها رویکردهای اساساً متفاوتی در نحوه ثبت، اعتبارسنجی و تجزیه و تحلیل داده‌های مالی شما دارند.

2026-03-17-beancount-vs-hledger-comparison-plain-text-accounting

این راهنما تفاوت‌های کلیدی را بررسی می‌کند تا بتوانید ابزاری را انتخاب کنید که با جریان کاری، سطح تجربه و نیازهای ردیابی مالی شما سازگار باشد.

فلسفه اصلی: سخت‌گیرانه در مقابل منعطف

بزرگترین تفاوت بین Beancount و hledger یک ویژگی نیست، بلکه یک طرز فکر است.

Beancount مانند یک معلم سخت‌گیر است. فرض را بر این می‌گذارد که شما در وارد کردن داده‌ها اشتباه خواهید کرد و برای شناسایی زودهنگام آن‌ها، موانع حفاظتی ایجاد می‌کند. هر حساب باید قبل از استفاده صراحتاً باز (open) شود. هر تراکنش باید به صفر تراز شود. ارزها باید از یک فرمت سفت و سخت پیروی کنند. اگر چیزی درست به نظر نرسد، Beancount از پردازش فایل شما تا زمانی که آن را اصلاح نکنید، خودداری می‌کند.

hledger مانند یک دوست بخشنده است. از نحو (syntax) منعطف‌تری استفاده می‌کند، به شما اجازه می‌دهد از پیش‌تعریف حساب‌ها صرف‌نظر کنید و حتی می‌تواند ورودی‌های ترازکننده را استنتاج کند. شما می‌توانید ردیابی امور مالی را با حداقل تنظیمات شروع کنید و با رشد نیازهایتان، به تدریج به آن ساختار اضافه کنید.

هیچ‌کدام از این دو رویکرد به طور مطلق برتر نیستند. اگر برایتان مهم است که خطاها را قبل از اینکه به ساعت‌ها عیب‌یابی تبدیل شوند شناسایی کنید، سخت‌گیری Beancount یک مزیت است. اگر می‌خواهید سریع شروع کنید و انعطاف‌پذیری را ترجیح می‌دهید، تساهل hledger یک امتیاز محسوب می‌شود.

نحو و فرمت داده‌ها

هر دو ابزار تراکنش‌ها را در فایل‌های متن ساده ذخیره می‌کنند، اما قوانین نحو آن‌ها تفاوت معناداری دارد.

نحو Beancount

2026-03-15 * "Whole Foods" "Weekly groceries"
Expenses:Food:Groceries 85.42 USD
Liabilities:CreditCard:Visa

قوانین کلیدی:

  • تاریخ‌ها از فرمت ISO 8601 استفاده می‌کنند (YYYY-MM-DD)
  • ارزها باید حروف بزرگ باشند (مانند USD, EUR) و از نمادهایی مثل $ یا استفاده نمی‌شود
  • نام حساب‌ها به حداقل دو بخش نیاز دارند که با دونقطه از هم جدا می‌شوند (مانند Expenses:Food)
  • توضیحات باید رشته‌های داخل کوتیشن باشند
  • تمام حساب‌ها باید صراحتاً با دستور open باز شوند

نحو hledger

2026-03-15 Whole Foods | Weekly groceries
expenses:food:groceries $85.42
liabilities:creditcard:visa

قوانین کلیدی:

  • فرمت‌های تاریخ منعطف‌تر
  • استفاده از نمادهای ارز مانند $ و مجاز است
  • نام حساب‌ها می‌تواند با حروف کوچک و با فرمت آزادتر باشد
  • توضیحات نیازی به کوتیشن ندارند
  • نیازی به پیش‌تعریف حساب‌ها نیست

نتیجه‌گیری: نحو سخت‌گیرانه‌تر Beancount به معنای کار اولیه بیشتر اما ابهام کمتر است. نحو منعطف hledger برای شروع آسان‌تر است اما برای حفظ ثبات به انضباط بیشتری نیاز دارد.

یکپارچگی و اعتبارسنجی داده‌ها

اینجاست که Beancount واقعاً خود را متمایز می‌کند.

تاییدیه موجودی (Balance Assertions)

هر دو ابزار از تاییدیه‌های موجودی پشتیبانی می‌کنند؛ دستوراتی که بررسی می‌کنند موجودی ثبت‌شده شما با صورت‌حساب بانکی مطابقت داشته باشد. اما عملکرد آن‌ها متفاوت است.

Beancount از تاییدیه‌های موجودی تاریخ‌دار استفاده می‌کند که مستقل از ترتیب هستند. شما می‌توانید فایل‌های تراکنش خود را هر طور که دوست دارید جابه‌جا کنید و تاییدیه‌ها همچنان به درستی کار می‌کنند. تاییدیه‌های hledger به ترتیب فایل وابسته هستند، به این معنی که جابه‌جایی تراکنش‌ها می‌تواند باعث خرابی آن‌ها شود.

ردیابی موجودی (Inventory Tracking)

برای هر کسی که سرمایه‌گذاری‌ها را ردیابی می‌کند، این موضوع اهمیت زیادی دارد. Beancount ثبت دقیق موجودی را اجباری می‌کند: شما نمی‌توانید سهامی را که هرگز نخریده‌اید بفروشید و بهای تمام شده (cost basis) را با دقت ردیابی می‌کند. این کار از "نشت بهای تمام شده" جلوگیری می‌کند؛ یک خطای نامحسوس که در آن محاسبات عایدی سرمایه شما از واقعیت فاصله می‌گیرد.

hledger کالاها و لات‌ها (lots) را مدیریت می‌کند اما با اجبار کمتر. این ابزار منعطف‌تر است، که به این معنی است که در برابر اشتباهاتی که ممکن است تا زمان مالیات متوجه آن‌ها نشوید، بخشنده‌تر است.

دسته‌بندی حساب‌ها

Beancount مستلزم آن است که هر حساب به یکی از پنج دسته تعلق داشته باشد: دارایی‌ها (Assets)، بدهی‌ها (Liabilities)، درآمدها (Income)، هزینه‌ها (Expenses) یا سرمایه (Equity). این محدودیت به آن اجازه می‌دهد تا ترازنامه‌ها و صورت‌های سود و زیان مناسب را به طور خودکار تولید کند.

hledger اجازه سلسله‌مراتب دلخواه حساب‌ها را بدون دسته‌بندی‌های ریشه اجباری می‌دهد. این به شما آزادی بیشتری می‌دهد اما به این معنی است که برای دریافت گزارش‌های مالی معنادار، باید قراردادها را به صورت دستی دنبال کنید.

رابط کاربری و گزارش‌دهی

Beancount + Fava

ویژگی برجسته Beancount، Fava است، یک رابط وب صیقل‌خورده که موارد زیر را ارائه می‌دهد:

  • نمودارها و گراف‌های تعاملی (روند ارزش خالص، تفکیک هزینه‌ها، درآمد در مقابل هزینه‌ها)
  • تصویرسازی‌های Treemap برای دسته‌بندی‌های مخارج
  • فیلترینگ قدرتمند بر اساس حساب، تگ، دوره زمانی و پرداخت‌کننده
  • یک زبان کوئری برای گزارش‌های سفارشی
  • یک ویرایشگر داخلی برای فایل‌های دفتر کل شما

Fava به طور گسترده به عنوان بهترین رابط کاربری در اکوسیستم حسابداری متنی شناخته می‌شود. اگر فردی بصری هستید که به داشبوردها و نمودارها علاقه دارید، این یک امتیاز بزرگ برای Beancount است.

رابط‌های hledger

hledger رویکردی چند‌رابطی دارد:

  • CLI: گزارش‌گیری قدرتمند در خط فرمان با ده‌ها دستور داخلی (balance ،register ،incomestatement ،cashflow و موارد دیگر)
  • hledger-ui: یک رابط کاربری مبتنی بر ترمینال برای مرور تعاملی حساب‌ها و تراکنش‌ها
  • hledger-web: یک رابط وب ساده‌تر برای مرور اولیه و وارد کردن داده‌ها

رابط خط فرمان (CLI) hledger در حالت پیش‌فرض قدرتمندتر از Beancount است. اگر در محیط ترمینال فعالیت می‌کنید و به گزارش‌های سریع و قابل اسکریپت‌نویسی نیاز دارید، hledger نیاز شما را برآورده می‌کند.

عملکرد

hledger با زبان Haskell نوشته شده و تقریباً ۲۵,۰۰۰ تراکنش را در ثانیه پردازش می‌کند. برای اکثر کاربران امور مالی شخصی، هر دو ابزار عملاً آنی عمل می‌کنند. اما اگر در حال مدیریت مجموعه داده‌های بزرگ هستید — سال‌ها تراکنش در چندین واحد اقتصادی — سرعت خام hledger به آن برتری می‌دهد.

Beancount (نسخه ۳) برای بخش تجزیه‌گر (Parser) اصلی خود با C++ بازنویسی شده است که عملکرد آن را نسبت به پیاده‌سازی اصلی پایتون به طرز قابل توجهی بهبود بخشیده است. برای استفاده‌های معمول شخصی یا کسب‌وکارهای کوچک، تفاوتی احساس نخواهید کرد.

قابلیت گسترش و افزونه‌ها

افزونه‌های Beancount

Beancount دارای یک سیستم افزونه بومی پایتون است که به‌طور شگفت‌انگیزی قدرتمند است. افزونه‌ها می‌توانند:

  • تراکنش‌ها را به‌طور خودکار تقسیم کنند (مثلاً هزینه‌های مشترک)
  • تراکنش‌های تکرار شونده ایجاد کنند
  • قوانین اعتبارسنجی سفارشی را اعمال کنند
  • داده‌ها را در خط لوله پردازش تغییر دهند

اکوسیستم پایتون به این معنی است که می‌توانید از هر کتابخانه پایتون در افزونه‌های خود استفاده کنید. این امر Beancount را برای سناریوهای مالی پیچیده بسیار سفارشی‌پذیر می‌کند.

افزونه‌های hledger

hledger قابلیت گسترش را از طریق موارد زیر ارائه می‌دهد:

  • قوانین وارد کردن CSV برای خودکارسازی صورت‌حساب‌های بانکی
  • اسکریپت‌های گزارش‌گیری سفارشی با استفاده از خروجی CLI
  • یک API از نوع HTTP-JSON برای ساخت ابزارهای یکپارچه
  • دستورات افزودنی مبتنی بر Haskell

سیستم وارد کردن فایل‌های CSV در hledger بسیار مورد تحسین قرار گرفته است؛ این سیستم خودکارسازی وارد کردن صورت‌حساب‌های بانکی را با فایل‌های قانونی که ستون‌های CSV را به پست‌های حساب متصل می‌کنند، ساده می‌سازد.

شروع به کار و منحنی یادگیری

hledger: ورود آسان‌تر

شروع کار با hledger به‌طور کلی آسان‌تر است:

  • نصب یک فایل اجرایی واحد (پشتیبانی عالی از پلتفرم‌های مختلف، از جمله ویندوز)
  • ایجاد یک فایل و شروع ثبت تراکنش‌ها بلافاصله
  • عدم نیاز به تعریف حساب‌ها یا پیروی از قراردادهای نام‌گذاری سخت‌گیرانه
  • مستندات جامع و به‌خوبی نگهداری شده
  • جامعه فعال با منابع مناسب برای مبتدیان

Beancount: تنظیمات بیشتر، ساختار دقیق‌تر

Beancount به تنظیمات اولیه بیشتری نیاز دارد:

  • نصب پایتون و Beancount (و Fava برای رابط وب)
  • تعریف حساب‌ها قبل از استفاده از آن‌ها
  • پیروی از قوانین دستوری سخت‌گیرانه از روز اول
  • یادگیری دسته‌بندی‌های پنج‌گانه حساب‌ها

مزیت این است که این سرمایه‌گذاری اولیه در طول زمان نتیجه می‌دهد. یک دفتر کل Beancount با ساختار مناسب، با رشد داده‌ها، برای نگهداری، اعتبارسنجی و حسابرسی آسان‌تر است.

جامعه کاربری و اکوسیستم

هر دو پروژه دارای جوامع فعال و حمایت‌گری هستند:

  • Beancount: لیست پستی فعال، اکوسیستم رو به رشد از ابزارهای شخص ثالث (ایمپورترها، افزونه‌ها، افزونه‌های Fava) و جامعه قدرتمند توسعه‌دهندگان پایتون
  • hledger: انتشار نسخه‌های مکرر (تقریباً فصلی)، مستندات گسترده، کانال‌های گفتگوی فعال و جامعه گسترده‌تر plaintextaccounting.org

هر دو ابزار از جنبش گسترده‌تر «حسابداری متن‌مبنا» (Plain-text accounting) بهره می‌برند، که به معنای منابع مشترک، ایمپورترها و دانش جمعی جامعه است.

مهاجرت بین ابزارها

اگر با یکی از ابزارها شروع کنید و بخواهید بعداً آن را تغییر دهید، مهاجرت امکان‌پذیر است اما چندان ساده نیست:

  • hledger به Beancount: از دستور hledger print -o tmp.beancount به عنوان نقطه شروع استفاده کنید، سپس نحو را اصلاح کنید (افزودن تعریف حساب‌ها، اصلاح فرمت‌های ارز، بازسازی نام حساب‌ها)
  • Beancount به hledger: ابزار bean-report می‌تواند خروجی صادر کند، اگرچه معمولاً اصلاحات دستی مورد نیاز است

فلسفه مشترک متن‌مبنا به این معنی است که داده‌های شما هرگز محبوس نمی‌شوند. شما همیشه می‌توانید فایل‌های خود را بخوانید و تبدیل کنید، حتی اگر این فرآیند نیاز به مقداری پاک‌سازی دستی داشته باشد.

جدول مقایسه سریع

ویژگیBeancounthledger
زبانپایتون/سی‌پلاس‌پلاسهسکل
سخت‌گیری در نحوسخت‌گیرانهمنعطف
تعریف حسابالزامیاختیاری
بهترین رابط کاربریFava (وب)CLI + TUI
ردیابی سرمایه‌گذاریعالیخوب
سیستم افزونهافزونه‌های پایتوناسکریپت‌ها + API
وارد کردن CSVاز طریق ایمپورترهاقوانین داخلی
منحنی یادگیریشیب‌دارترملایم‌تر
تاییدیه موجودیمستقل از ترتیبوابسته به ترتیب فایل
عملکردسریع (نسخه ۳)بسیار سریع
پشتیبانی ویندوزخوبعالی

کدام‌یک را باید انتخاب کنید؟

Beancount را انتخاب کنید اگر:

  • یک داشبورد وب زیبا برای تجسم وضعیت مالی خود می‌خواهید
  • سرمایه‌گذاری‌ها را ردیابی می‌کنید و به مدیریت دقیق بهای تمام شده نیاز دارید
  • سیستمی را ترجیح می‌دهید که خطاها را زود شناسایی کرده و ثبات را اعمال کند
  • با پایتون راحت هستید و قابلیت گسترش قدرتمند افزونه‌ها را می‌خواهید
  • به سازماندهی فایل مستقل از ترتیب اهمیت می‌دهید

hledger را انتخاب کنید اگر:

  • کار در ترمینال با گزارش‌های سریع و قابل اسکریپت‌نویسی را ترجیح می‌دهید
  • می‌خواهید با حداقل تنظیمات به‌سرعت شروع به کار کنید
  • به پشتیبانی عالی در ویندوز نیاز دارید
  • نحو منعطفی را ترجیح می‌دهید که با سبک شما سازگار شود
  • انتشار نسخه‌های مکرر و نگهداری فعال را می‌پسندید

حقیقت محض: هر دو ابزار عالی هستند. جامعه حسابداری متن‌مبنا بدون توجه به ابزاری که استفاده می‌کنید پذیرای شماست و مهارت‌هایی که با یکی یاد می‌گیرید به‌راحتی به دیگری منتقل می‌شوند. ابزاری را انتخاب کنید که با جریان کاری شما سازگار است، آن را به مدت یک ماه امتحان کنید و در صورت نیاز تغییر دهید.

رهگیری مالی خود را با Beancount.io ساده کنید

چه Beancount را انتخاب کنید و چه hledger، حسابداری متن-ساده شما را در کنترل داده‌های مالی‌تان قرار می‌دهد. اگر به دنبال قدرت Beancount همراه با داشبورد Fava میزبانی‌شده، واردات خودکار بانکی و بدون نیاز به مدیریت زیرساخت هستید، Beancount.io این کار را بی‌دردسر می‌کند. به صورت رایگان شروع کنید و حسابداری متن-ساده را بدون بار اضافیِ راه‌اندازی تجربه کنید.