Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build status License: GPL v3


monescript is a double-entry plain text accounting system that works in you browser. monescript is a server-less application, all the calculations are performed locally in your browser window without any data leaving your computer.

monescript works with text files formatted as a transaction journal. No modification is made to the original journal, monescript only performs journal analysis and presents financial summary graphs and statistics.


For years I've been using Excel to handle my personal accounting. After stumbiling upon Ledger docs and introduction to double-entry accounting from Beancount I decided to try out plain text accounting.

Around that time I also wanted to learn JavaScript, so naturally monescript works in the browser and in nodejs (for the tests). As a side benefit there is nothing to install to get monescript working, all you need is a browser and a text editor. You can just add your transactions to the text file and open it in monescript to get all the details in couple of clicks.


By default demo shows randomly generated data on the Transactions tab.

You can explore the generated journal format on the Source tab.

If you have a file with monescript journal syntax you can feed it to monescript from the Open tab.

monescript journal syntax

monescript syntax is inspired by Ledger journal syntax. Here is the list of features that are currently supported by monescript parser:

  • Transaction format
    • YYYY/MM/DD date format
    • $ currency
    • simple arithmetic value expressions (+, -, *, /)
    • notes prefixed with ';'
  • line comments prefixed with ';' or '#'
  • bucket command
  • tag names
  • include and year commands (ignored)

There is no restriction on the name of the accounts.

Journal is expected to be balanced, which means that for every transaction has to have source and destination account(s). if journal is not balanced. monescript will not be able to analyze the journal and show an error.

Sample monescript journal file

bucket Assets:Bank:Checking 

2017/1/9 * The Doughnut
  Expenses:Food:Takeout                  $10.10

2017/1/7 * Pharmacy One
  Expenses:Pharmacy                      $22.34
# don't have to specify the source account, when defined with bucket command above  

2017/2/1 * PartyShack
  ; monescript can compute simple expressions, like this tax calculation 
  Expenses:Entertainment                 ($5.89 * 1.05) 
  Expenses:Clothing                      $16.72

; You can insert arbitrary comments between transactions
2017/1/13 * Groceries and More
  Expenses:Food:Grocery                  $29.32 ; Or for each posting

2017/2/3 * Laser Play
  Expenses:Entertainment                 $45.96

2017/2/4 * Eastern Gas
  Expenses:Bills:Gas                     $47.64
  Assets:Bank:Checking                   $-47.64 

Contributions and bugs

If you find a bug please submit a ticket in the Issues. Contributions are welcome via pull request to the master branch.


Copyright (C) 2018 ABTechBit <>


No releases published


No packages published