<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Ledger on Clément Joly – Open-Source, Rust &amp; SQLite</title><link>https://joly.pw/tags/ledger/</link><description>Recent content in Ledger on Clément Joly – Open-Source, Rust &amp; SQLite</description><image><title>Clément Joly – Open-Source, Rust &amp; SQLite</title><url>https://joly.pw/images/open-graph-pages.jpg</url><link>https://joly.pw/images/open-graph-pages.jpg</link></image><generator>Hugo</generator><language>en</language><copyright>Clément Joly</copyright><lastBuildDate>Mon, 04 May 2026 19:41:10 +0100</lastBuildDate><atom:link href="https://joly.pw/tags/ledger/index.xml" rel="self" type="application/rss+xml"/><item><title>Hmrc2ledger</title><link>https://joly.pw/hmrc2ledger/</link><pubDate>Sun, 21 Aug 2022 08:15:54 +0100</pubDate><guid>https://joly.pw/hmrc2ledger/</guid><description>Put HMRC rates in a ledger database</description><content:encoded><![CDATA[<p>
<p style="display: flex; justify-content: space-between">
  <a href="https://github.com/cljoly/hmrc2ledger" data-goatcounter-click="ext-github-hmrc2ledger" data-goatcounter-title="cljoly/hmrc2ledger">
    <span class="svgicon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
    stroke-linecap="round" stroke-linejoin="round">
    <path
        d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22">
    </path>
</svg></span>&nbsp;cljoly/hmrc2ledger
  </a>
  <a class="badges" href="https://github.com/cljoly/hmrc2ledger" data-goatcounter-click="ext-stargithub-hmrc2ledger" data-goatcounter-title="stars cljoly/hmrc2ledger">
    <img src="https://img.shields.io/github/stars/cljoly/hmrc2ledger?style=social" alt="Github stars for hmrc2ledger">
  </a>
</p>


<div class="badges">
</p>
<p><a href="https://cj.rs/riss">

  <img loading="lazy" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDQiIGhlaWdodD0iMjAiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0icG93ZXJlZCBieTogcmlzcyI+PHRpdGxlPnBvd2VyZWQgYnk6IHJpc3M8L3RpdGxlPjxsaW5lYXJHcmFkaWVudCBpZD0icyIgeDI9IjAiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNiYmIiIHN0b3Atb3BhY2l0eT0iLjEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iLjEiLz48L2xpbmVhckdyYWRpZW50PjxjbGlwUGF0aCBpZD0iciI+PHJlY3Qgd2lkdGg9IjEwNCIgaGVpZ2h0PSIyMCIgcng9IjMiIGZpbGw9IiNmZmYiLz48L2NsaXBQYXRoPjxnIGNsaXAtcGF0aD0idXJsKCNyKSI+PHJlY3Qgd2lkdGg9Ijc1IiBoZWlnaHQ9IjIwIiBmaWxsPSIjNTU1Ii8+PHJlY3QgeD0iNzUiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyMCIgZmlsbD0iIzlmOWY5ZiIvPjxyZWN0IHdpZHRoPSIxMDQiIGhlaWdodD0iMjAiIGZpbGw9InVybCgjcykiLz48L2c+PGcgZmlsbD0iI2ZmZiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9IlZlcmRhbmEsR2VuZXZhLERlamFWdSBTYW5zLHNhbnMtc2VyaWYiIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIGZvbnQtc2l6ZT0iMTEwIj48dGV4dCBhcmlhLWhpZGRlbj0idHJ1ZSIgeD0iMzg1IiB5PSIxNTAiIGZpbGw9IiMwMTAxMDEiIGZpbGwtb3BhY2l0eT0iLjMiIHRyYW5zZm9ybT0ic2NhbGUoLjEpIiB0ZXh0TGVuZ3RoPSI2NTAiPnBvd2VyZWQgYnk8L3RleHQ+PHRleHQgeD0iMzg1IiB5PSIxNDAiIHRyYW5zZm9ybT0ic2NhbGUoLjEpIiBmaWxsPSIjZmZmIiB0ZXh0TGVuZ3RoPSI2NTAiPnBvd2VyZWQgYnk8L3RleHQ+PHRleHQgYXJpYS1oaWRkZW49InRydWUiIHg9Ijg4NSIgeT0iMTUwIiBmaWxsPSIjMDEwMTAxIiBmaWxsLW9wYWNpdHk9Ii4zIiB0cmFuc2Zvcm09InNjYWxlKC4xKSIgdGV4dExlbmd0aD0iMTkwIj5yaXNzPC90ZXh0Pjx0ZXh0IHg9Ijg4NSIgeT0iMTQwIiB0cmFuc2Zvcm09InNjYWxlKC4xKSIgZmlsbD0iI2ZmZiIgdGV4dExlbmd0aD0iMTkwIj5yaXNzPC90ZXh0PjwvZz48L3N2Zz4="></a></p>

</div>

<p><strong><em>Disclaimer</em>: This is not financial advice. It may be outdated or wrong, do your own research.</strong></p>
<p>Convert <a href="https://www.gov.uk/government/collections/exchange-rates-for-customs-and-vat">CSV</a> to <a href="https://www.ledger-cli.org/">ledger</a> price db, to compute <a href="https://www.gov.uk/hmrc-internal-manuals/capital-gains-manual/cg78310">foreign</a> transaction CGT (and <a href="https://www.gov.uk/hmrc-internal-manuals/capital-gains-manual/cg78316">section 104</a> holdings).</p>




  <figure>
    <blockquote >
      <p>Contains public sector information licensed under the <a href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/">Open Government Licence v3.0</a></p>

    </blockquote>
    
  </figure>



]]></content:encoded></item><item><title>Ledger.ctags</title><link>https://joly.pw/ledger-ctags/</link><pubDate>Sun, 21 Aug 2022 08:15:54 +0100</pubDate><guid>https://joly.pw/ledger-ctags/</guid><description>Ctags file for ledger-cli</description><content:encoded><![CDATA[
<p style="display: flex; justify-content: space-between">
  <a href="https://github.com/cljoly/ledger.ctags" data-goatcounter-click="ext-github-ledger.ctags" data-goatcounter-title="cljoly/ledger.ctags">
    <span class="svgicon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
    stroke-linecap="round" stroke-linejoin="round">
    <path
        d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22">
    </path>
</svg></span>&nbsp;cljoly/ledger.ctags
  </a>
  <a class="badges" href="https://github.com/cljoly/ledger-ctags" data-goatcounter-click="ext-stargithub-ledger.ctags" data-goatcounter-title="stars cljoly/ledger.ctags">
    <img src="https://img.shields.io/github/stars/cljoly/ledger.ctags?style=social" alt="Github stars for ledger.ctags">
  </a>
</p>

<p>If you are using <a href="https://ledger-cli.org/">Ledger</a> or one of its variants for your <a href="https://plaintextaccounting.org/">plain text accounting</a>, you get to manage your finances a bit more like you manage code. With plain text files, in your favorite editor.</p>
<p>And yet, as opposed to code in most languages, you don’t have a <a href="https://microsoft.github.io/language-server-protocol/">Language Server Protocol implementation</a>. So it’s a bit harder to get completions on accounts, tags, payees… You have to rely on bespoken support from your editor and that’s often imperfect or slow. Plus, if you <a href="https://www.ledger-cli.org/3.0/doc/ledger3.html#index-pre_002ddeclare-account">declare</a> your accounts and payees, you also can’t jump to the definition easily.</p>
<p>Enter ctags configuration for ledger, which this project provides. It generates <code>tag</code> file that’s understood by your editor, often out of the box (<a href="https://vimhelp.org/usr_29.txt.html#29.1">vim/neovim</a>, <a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Tags-Tables.html">emacs</a>) or with a generic plugin (Atom, VS Code, TextMate and <a href="https://en.wikipedia.org/wiki/Ctags#Editors_that_support_ctags">more</a>). Congrats, your editor now has very fast completions and code navigation!</p>
<h2 id="installation">Installation</h2>
<p>You need to have <a href="https://ctags.io/">ctags</a> installed<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<p>Then drop <a href="https://raw.githubusercontent.com/cljoly/ledger.ctags/main/ledger.ctags"><code>ledger.ctags</code></a> in <code>~/.config/ctags</code> (or whatever <code>ctags</code> is configured to read).</p>
<h2 id="usage">Usage</h2>
<pre tabindex="0"><code>ctags my/ledger/journal.ldg
</code></pre><p>will collect all the elements formally <a href="https://www.ledger-cli.org/3.0/doc/ledger3.html#index-pre_002ddeclare-account">declared</a> in the journal file. This means that in the following file:</p>
<pre tabindex="0"><code class="language-ledger" data-lang="ledger">tag UUID
account Assets
payee Shop
commodity EUR

2022-01-01 * Someone
    Expenses:Food   $10
    Liabilities:Credit Card
</code></pre><p>only <code>UUID</code>, <code>Assets</code>, <code>Shop</code> and <code>EUR</code> are detected, because they are the only one declared and so the only ones with a definition to jump to. <code>Someone</code>, <code>Expenses</code>, <code>Expenses:Food</code>, <code>$</code>, <code>Liabilities</code> and <code>Liabilities:Credit  Card</code> are not declared, so they are ignored by ctags.</p>
<h3 id="initial-list-of-accounts-payees">Initial List of Accounts, Payees…</h3>
<p>As mentioned, ctags only collects elements that are declared. You could write the declarations manually, if you want to have fine-grained control of which accounts you want to actively use and have completions for. But to ease initial bootstrapping, you may want to start by adding everything you currently use in your ledger journals. You can do that with a couple commands.</p>
<p>For accounts, you can use this bash snippet:</p>
<pre tabindex="0"><code>ledger accounts | awk &#39;{ print &#34;account&#34;, $0}&#39;
</code></pre><p>For payees:</p>
<pre tabindex="0"><code>ledger payees | awk &#39;{ print &#34;payee&#34;, $0}&#39;
</code></pre><p>For tags:</p>
<pre tabindex="0"><code>ledger tags | awk &#39;{ print &#34;tag&#34;, $0}&#39;
</code></pre><p>The snippets above output proper ledger definitions for accounts, payees and tags. You can insert these outputs in your journal or in a separate file with all your declarations (say <code>declarations.ledger</code>), that you can then <code>include</code> in your main journal file.</p>
<p>Don’t forget that ctags does not follow includes, so you should pass the file with the definitions to ctags (e.g. <code>ctags declarations.ledger</code>)</p>
<h3 id="multiple-files">Multiple files</h3>
<p>If you have multiple ledger journal files, pass them all to ctags (e.g. <code>ctags *.ledger *.ldg</code>) or run it on the current directory:</p>
<div class="highlight"><pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>ctags -R .
</span></span></code></pre></div><hr>
<h2 id="automatic-update-with-chezmoi">Automatic Update with Chezmoi</h2>
<p>Chezmoi <a href="https://www.chezmoi.io/reference/special-files-and-directories/chezmoiexternal-format/">external</a> feature allows you to auto update and manage the <code>ledger.ctags</code> file, by adding the following to your <code>~/.local/share/chezmoi/.chezmoiexternal.toml</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-toml" data-lang="toml"><span style="display:flex;"><span>[<span style="color:#98c379">&#34;.config/ctags/&#34;</span>]
</span></span><span style="display:flex;"><span>    <span style="color:#e06c75">type</span> = <span style="color:#98c379">&#34;archive&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#e06c75">include</span> = [ <span style="color:#98c379">&#34;*/ledger.ctags&#34;</span> ]
</span></span><span style="display:flex;"><span>    <span style="color:#e06c75">url</span> = <span style="color:#98c379">&#34;https://github.com/cljoly/ledger.ctags/archive/master.zip/&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#e06c75">stripComponents</span> = <span style="color:#d19a66">1</span>
</span></span></code></pre></div><h2 id="contributing">Contributing</h2>
<p>Contributions (documentation or code improvements in particular) are welcome, see <a href="https://cj.rs/docs/contribute/">contributing</a>!</p>
<p>Feel free <a href="https://github.com/cljoly/ledger.ctags/issues/new">to fill an issue</a> if your <em>declared</em> accounts, tags, payee, alias… are not properly detected.</p>
<h2 id="acknowledgments">Acknowledgments</h2>
<p>I would like to thank the creators, and all the contributors, of <a href="https://ctags.io/">ctags</a> and <a href="https://ledger-cli.org/">ledger</a>. This is small configuration to make these two great projects work better together.</p>

<div class="badges">

<p><a href="https://cj.rs/riss">

  <img loading="lazy" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDQiIGhlaWdodD0iMjAiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0icG93ZXJlZCBieTogcmlzcyI+PHRpdGxlPnBvd2VyZWQgYnk6IHJpc3M8L3RpdGxlPjxsaW5lYXJHcmFkaWVudCBpZD0icyIgeDI9IjAiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNiYmIiIHN0b3Atb3BhY2l0eT0iLjEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iLjEiLz48L2xpbmVhckdyYWRpZW50PjxjbGlwUGF0aCBpZD0iciI+PHJlY3Qgd2lkdGg9IjEwNCIgaGVpZ2h0PSIyMCIgcng9IjMiIGZpbGw9IiNmZmYiLz48L2NsaXBQYXRoPjxnIGNsaXAtcGF0aD0idXJsKCNyKSI+PHJlY3Qgd2lkdGg9Ijc1IiBoZWlnaHQ9IjIwIiBmaWxsPSIjNTU1Ii8+PHJlY3QgeD0iNzUiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyMCIgZmlsbD0iIzlmOWY5ZiIvPjxyZWN0IHdpZHRoPSIxMDQiIGhlaWdodD0iMjAiIGZpbGw9InVybCgjcykiLz48L2c+PGcgZmlsbD0iI2ZmZiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9IlZlcmRhbmEsR2VuZXZhLERlamFWdSBTYW5zLHNhbnMtc2VyaWYiIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIGZvbnQtc2l6ZT0iMTEwIj48dGV4dCBhcmlhLWhpZGRlbj0idHJ1ZSIgeD0iMzg1IiB5PSIxNTAiIGZpbGw9IiMwMTAxMDEiIGZpbGwtb3BhY2l0eT0iLjMiIHRyYW5zZm9ybT0ic2NhbGUoLjEpIiB0ZXh0TGVuZ3RoPSI2NTAiPnBvd2VyZWQgYnk8L3RleHQ+PHRleHQgeD0iMzg1IiB5PSIxNDAiIHRyYW5zZm9ybT0ic2NhbGUoLjEpIiBmaWxsPSIjZmZmIiB0ZXh0TGVuZ3RoPSI2NTAiPnBvd2VyZWQgYnk8L3RleHQ+PHRleHQgYXJpYS1oaWRkZW49InRydWUiIHg9Ijg4NSIgeT0iMTUwIiBmaWxsPSIjMDEwMTAxIiBmaWxsLW9wYWNpdHk9Ii4zIiB0cmFuc2Zvcm09InNjYWxlKC4xKSIgdGV4dExlbmd0aD0iMTkwIj5yaXNzPC90ZXh0Pjx0ZXh0IHg9Ijg4NSIgeT0iMTQwIiB0cmFuc2Zvcm09InNjYWxlKC4xKSIgZmlsbD0iI2ZmZiIgdGV4dExlbmd0aD0iMTkwIj5yaXNzPC90ZXh0PjwvZz48L3N2Zz4="></a></p>

</div>

<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Another implementation may work, but it’s untested. Feel free to send a PR though!&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Into Ledger</title><link>https://joly.pw/into-ledger/</link><pubDate>Sat, 21 Aug 2021 16:23:33 +0100</pubDate><guid>https://joly.pw/into-ledger/</guid><description>🔮 AI-powered expenses classifier for ledger. The original project seems not to be maintained anymore, hence this fork to continue improving it.</description><content:encoded><![CDATA[
<p style="display: flex; justify-content: space-between">
  <a href="https://github.com/cljoly/into-ledger" data-goatcounter-click="ext-github-into-ledger" data-goatcounter-title="cljoly/into-ledger">
    <span class="svgicon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
    stroke-linecap="round" stroke-linejoin="round">
    <path
        d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22">
    </path>
</svg></span>&nbsp;cljoly/into-ledger
  </a>
  <a class="badges" href="https://github.com/cljoly/into-ledger" data-goatcounter-click="ext-stargithub-into-ledger" data-goatcounter-title="stars cljoly/into-ledger">
    <img src="https://img.shields.io/github/stars/cljoly/into-ledger?style=social" alt="Github stars for into-ledger">
  </a>
</p>


<div class="badges">

<p><a href="https://goreportcard.com/report/github.com/cljoly/into-ledger">
<img alt="Go Report Card" loading="lazy" src="https://goreportcard.com/badge/github.com/cljoly/into-ledger"></a> <a href="https://github.com/cljoly/into-ledger/actions/workflows/build.yml">
<img alt="Test" loading="lazy" src="https://github.com/cljoly/into-ledger/actions/workflows/build.yml/badge.svg"></a> <a href="https://github.com/cljoly/into-ledger/commits/master">
<img alt="GitHub last commit" loading="lazy" src="https://img.shields.io/github/last-commit/cljoly/into-ledger"></a></p>

</div>

<p>into-ledger helps categorization of CSV transactions and conversion into ledger format for consumption by <a href="http://ledger-cli.org/">ledger-cli.org</a>. It makes importing hundreds of transactions into ledger a breeze. I typically get close to a hundred transactions per account per month myself, which is why I wrote this tool.</p>




  
  
  
  

  <div class="alert alert-note">
    <p class="alert-heading">
      ℹ️
      
        Note
      
    </p>
    <p>This is a fork of <a href="https://github.com/manishrjain/into-ledger">manishrjain/into-ledger</a>  (which appears to be unmaintained)</p>
  </div>



<h2 id="features">Features</h2>
<ul>
<li><strong>Accurate</strong>             : Uses a much more accurate tf-idf expense classifier than used by cantino/reckon.</li>
<li><strong>Includes and Aliases</strong> : Correctly parses your existing journal file, handling all includes and account aliases.</li>
<li><strong>Keyboard Shortcuts</strong>   : Assigns dynamic keyboard shortcuts, so classifying transactions is just a keystroke away.</li>
<li><strong>Auto save</strong>            : Uses temporary storage (boltdb) to persist transactions that you have categorized or acknowledged to be correctly categorized, so you can quit whenever you want, without the risk of losing the work done so far.</li>
<li><strong>Deduplication</strong>        : Deduplicates incoming transactions from CSV against the transactions already present in ledger journal. This allows an easy resume from a broken workflow.</li>
<li><strong>Nice UI</strong>              : Colors and formatting, because it&rsquo;s not just about getting things done. It&rsquo;s also about making them look nice!</li>
</ul>
<p>This fork adds:</p>
<ul>
<li><strong>Fixes</strong>: various improvement, in particular to the CSV parsing</li>
<li><strong>Fuzzy selection</strong>: with fzf</li>
<li><strong>More documentation</strong>: admittedly still in progress</li>
<li><strong>More modern, cleaner codebase</strong>: this fork <a href="https://goreportcard.com/report/github.com/leowzukw/into-ledger">
<img alt="Go Report Card" loading="lazy" src="https://goreportcard.com/badge/github.com/leowzukw/into-ledger"></a> vs upstream  <a href="https://goreportcard.com/report/github.com/manishrjain/into-ledger">
<img alt="Go Report Card" loading="lazy" src="https://goreportcard.com/badge/github.com/manishrjain/into-ledger"></a></li>
<li><strong>Support of payee aliases</strong>: file with internal aliases <em>TODO</em></li>
</ul>
<p>This fork removes:</p>
<ul>
<li><strong>Plaid support</strong>: with better CSV parsing, the tool is more generic and can use data from many more websites</li>
</ul>
<h2 id="install">Install</h2>
<h3 id="binaries">Binaries</h3>
<p>If you understand the security implications, <a href="https://github.com/cljoly/into-ledger/releases/latest">grab a binary from the release page and run it</a>.</p>
<h3 id="build-it-yourself">Build it yourself</h3>
<p>A better option, security-wise, is to install the go toolchain and run</p>
<pre tabindex="0"><code>go get -u joly.pw/into-ledger
</code></pre><h2 id="help">Help</h2>
<pre tabindex="0"><code>Usage of ./into-ledger:
  -a string
    	Name of bank account transactions belong to.
  -c string
    	Set currency if any.
  -conf string
    	Config directory to store various into-ledger configs in. (default &#34;/home/mrjn/.into-ledger&#34;)
  -comma string
	Separator of fields in csv file
  -csv string
    	File path of CSV file containing new transactions.
  -d string
    	Express your date format in numeric form w.r.t. Jan 02, 2006, separated by slashes (/). See: https://golang.org/pkg/time/ (default &#34;01/02/2006&#34;)
  -debug
    	Additional debug information if set.
  -ic string
    	Comma separated list of columns to ignore in CSV.
  -j string
    	Existing journal to learn from.
  -o string
    	Journal file to write to. (default &#34;out.ldg&#34;)
  -opt string
	Extra option to pass to ledger commands
  -s int
    	Number of header lines in CSV to skip
</code></pre><h2 id="usage">Usage</h2>
<pre tabindex="0"><code># Importing from Citibank Australia
$ into-ledger -j ~/ledger/journal.ldg -csv ~/ledger/ACCT_464_25_07_2016.csv --ic &#34;3,4&#34; -o out.data -a citi -c AUD -d &#34;02/01/2006&#34;

# Importing from Chase USA. Skips the first line in CSV file. Also skips the first (0) and second (1) column in csv. Outputs to out.data. Sets currency as USD.
$ into-ledger -j ~/ledger/journal.ldg -csv ~/ledger/Activity.CSV --ic &#34;0,1&#34; -o out.data -a chase -c USD -s 1
</code></pre><p>Having to specify these command line arguments over and over again is annoying. So, instead you can create a config file in &ldquo;$HOME/.into-ledger/config.yaml&rdquo;, storing the flag values for reuse, like so:</p>
<pre tabindex="0"><code>accounts:
  chase:
    c: USD
    j: /home/mrjn/ledger/journal.ldg
    d: 01/02/2006
    ic: &#34;0,1&#34;
    o: /home/mrjn/ledger/chase.out
    s: 1
  cba-smart:
    c: AUD
    j: /home/mrjn/ledger/journal.ldg
    d: 02/01/2006
    ic: &#34;3&#34;
    o: /home/mrjn/ledger/cba.out
</code></pre><p><strong>Note: The way config is stored has changed recently. Please update your version of into-ledger using <code>go get -u -v github.com/manishrjain/into-ledger</code>. Also, update your config file.</strong></p>
<p>Now you can just run:
<code>into-ledger -a chase -csv &lt;input-csv&gt;</code>, or <code>into-ledger -a cba-smart -csv &lt;input-csv&gt;</code></p>
<h2 id="dates">Dates</h2>
<p>into-ledger requires you to specify the date format in numeric form w.r.t. Jan 02, 2006. This is how Go language parses dates. This is frequently a cause of confusion among folks unfamiliar with the language. So, please find here the commonly used date formats and how to specify them in into-ledger.</p>
<table>
  <thead>
      <tr>
          <th>Formatting Style</th>
          <th>Regions used in</th>
          <th>into-ledger format</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Month/Day/Year</td>
          <td>USA</td>
          <td>01/02/2006</td>
      </tr>
      <tr>
          <td>Month-Day-Year</td>
          <td>USA</td>
          <td>01-02-2006</td>
      </tr>
      <tr>
          <td>Day/Month/Year</td>
          <td>Australia, others</td>
          <td>02/01/2006</td>
      </tr>
      <tr>
          <td>Day-Month-Year</td>
          <td>Australia, others</td>
          <td>02-01-2006</td>
      </tr>
      <tr>
          <td>Year/Month/Day</td>
          <td>Ledger</td>
          <td>2006/01/02</td>
      </tr>
      <tr>
          <td>Year-Month-Day</td>
          <td>Ledger</td>
          <td>2006-01-02</td>
      </tr>
  </tbody>
</table>
<h2 id="keyboard-shortcuts">Keyboard Shortcuts</h2>
<p>One of the great advantages of using <code>into-ledger</code> is how quickly you can categorize a transaction. Most of the times the underlying categorization algorithm is smart enough to do the right thing for you. However, for the rest, <code>into-ledger</code> shows you keyboard shortcuts to pick the right category.</p>
<p><code>into-ledger</code> uses a keys module I wrote, which automatically assigns shortcuts to categories and persists them in <code>~/.into-ledger/shortcuts.yaml</code>. However, you might want to use certain keys for certain categories. In that case, feel free to hand-edit the <code>shortcuts.yaml</code> file. Just ensure that the same shortcut isn&rsquo;t being used twice in the file.</p>
<p><strong>Tip:</strong> If you want to assign a shortcut to a category, but it&rsquo;s being used by another category, feel free to delete that category block from the shortcuts file. into-ledger will automatically reassign a new shortcut to the deleted category, and write it back.</p>
<h2 id="screenshots">Screenshots</h2>
<p><strong>Parse transactions from CSV, and show automatically picked categories to be reviewed.</strong></p>
<p>
<img alt="list of transactions" loading="lazy" src="https://raw.githubusercontent.com/cljoly/into-ledger/master/list.png"></p>
<p><strong>Detect duplicates transactions in CSV, which are already present in ledger journal.</strong></p>
<p>
<img alt="duplicate detection" loading="lazy" src="https://raw.githubusercontent.com/cljoly/into-ledger/master/duplicates.png"></p>
<p><strong>Categorize transaction using persistent and dynamic keyboard shortcuts.</strong></p>
<p>
<img alt="categorize transaction" loading="lazy" src="https://raw.githubusercontent.com/cljoly/into-ledger/master/txn.png"></p>
]]></content:encoded></item></channel></rss>