{"id":16592688,"url":"https://github.com/prikhi/crypto-portfolio","last_synced_at":"2025-10-29T10:30:36.191Z","repository":{"id":80049256,"uuid":"125323504","full_name":"prikhi/crypto-portfolio","owner":"prikhi","description":"A CLI Cyrptocurrency Portfolio Tracker","archived":false,"fork":false,"pushed_at":"2018-04-24T16:52:45.000Z","size":223,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-02T01:01:56.490Z","etag":null,"topics":["brick","cli","cryptocurrency","finance","haskell","portfolio","tui"],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prikhi.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-15T06:38:27.000Z","updated_at":"2024-04-15T07:34:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"e16597dc-b167-4e85-a442-3e2530e232b5","html_url":"https://github.com/prikhi/crypto-portfolio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prikhi%2Fcrypto-portfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prikhi%2Fcrypto-portfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prikhi%2Fcrypto-portfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prikhi%2Fcrypto-portfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prikhi","download_url":"https://codeload.github.com/prikhi/crypto-portfolio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238803530,"owners_count":19533332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brick","cli","cryptocurrency","finance","haskell","portfolio","tui"],"created_at":"2024-10-11T23:21:56.573Z","updated_at":"2025-10-29T10:30:35.829Z","avatar_url":"https://github.com/prikhi.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Crypto Portfolio\n\n[![Build Status](https://travis-ci.org/prikhi/crypto-portfolio.svg?branch=master)](https://travis-ci.org/prikhi/crypto-portfolio)\n\nThis is an early alpha of a Cryptocurrency Portfolio management application\nwith a terminal UI.\n\nRight now it's mostly useful if you trade mostly on GDAX or Binance \u0026 have your\ntransactions entered in at http://CoinTracking.info. If you don't use\nCoinTracking, you can generate some randomized data to play around with.\n\n## Features\n\nIt currently:\n\n* Reads a cointracking.info Trades Table CSV export.\n* Streams the current USD price of each coin from GDAX.\n* Streams the current ETH or BTC prices of each of my coins from Binance.\n* Shows an Ethereum Gains table: the amount, cost, value, % change, \u0026 gains for\n  any altcoins traded with ETH, with totals in both ETH \u0026 USD.\n* Shows a USD Gains table: the amount, cost, value, % change, \u0026 gains for every\n  coin traded, earned, \u0026 spent.\n* Shows a list of all Trades, Income, Expenses, \u0026 Transfers.\n\n![The User Interface of the Crypto Portfolio Program, Showing a Table of Costs, Values, and Gains for Several Cryptocurrencies](http://bugs.sleepanarchy.com/projects/crypto-portfolio/repository/revisions/master/entry/screenshot.png \"KSP Automation Screenshot\")\n\n\n## Usage\n\nBuild it with `stack`:\n\n    stack build\n\nGo to the `Enter Coins` page on https://CoinTracking.info, hit the `Export`\nbutton and choose `CSV`. Move it to this directory and call it\n`trade_table.csv`.\n\nIf you don't use CoinTracking, you can generate some fake data instead:\n\n    stack exec generate-data\n\nNow run the app:\n\n    stack exec crypto-portfolio\n\nPress `n`/`p` to cycle through the views \u0026 `q` to quit. You can scroll the\ntables with the following keys:\n\n    j - scroll down 1 line\n    k - scroll up 1 line\n    Ctrl-d - scroll down 1/2 page\n    Ctrl-u - scroll up 1/2 page\n    Ctrl-f - scroll down a page\n    Ctrl-b - scroll up a page\n    g - go to first row\n    G - go to last row\n\n\n## Contribute\n\nLots to do, PRs gratiously accepted. For big things, please open an issue with\nyour intentions so we can be on the same page.\n\nYou can find more refactoring/cleanup sort of stuff by greping the `src` and\n`app` folders for `TODO`.\n\n### Short Term\n\n* \"Privacy\" mode that obfuscates amounts but still shows percents/prices\n* Highlight focused table row(skipping horizontal dividers) \n    * Completely highlight multi-line rows\n* Toggle between latest price \u0026 24hr/7d/1mo/1yr average prices\n* Total USD Realized Gains in Ethereum Gains table should be tied to historical\n  prices, not current price(right now ETH price updates change the realized\n  gains).\n* Build historical USD price cache in background\n    * use channel to send prices to main thread\n    * track total remaining requests, show progress bar on reliant views.\n    * re-serialize \u0026 save every time we get a price update\n    * properly handle exceptions while fetching(right now == runtime error)\n* Dashboard view - cointracking for inspiration\n    * current BTC \u0026 ETH price\n    * total coin value in USD\n    * total USD investment\n    * current account value \u0026 24hr change\n    * currency table w/ quantity, value / unrealized gains, price, \u0026 % change\n    * balance per exchange/account and/or currency\n    * Bar graph of each currency's portfolio percentage(coin val / total val)\n        * Could use stacked Brick.Widgets.ProgressBar for horizontal graph\n        * See https://github.com/christ0ph3r/cryptocurrency-cli for inspiration\n* Colors\n    * green for positive gains \u0026 percents, red for negative?\n    * Color \"Type\" column in trades list?\n    * `Graphics.Vty.Attributes` offers 240 color support.\n\n## Long Term\n\n* Allow changing Altcoin pair to other GDAX currencies(currently hardcoded to ETH)\n    * Could change Ethereum Gains to Altcoin Gains view.\n* Bar Graphs\n    * Ascii? Brick.Widgets.ProgressBar?\n    * Generate w/ charting library \u0026 show in terminal w/ my `brick-image` package?\n* Sorting Tables\n    * Add `Maybe (sorting function)` to Column type\n    * Keybinding to sort by previous/next column \u0026 toggle sort direction\n    * Unicode up/down arrows in header of current sorted column\n* Filtering Tables, Searching Transactions\n    * Allow text filtering of any column, like CoinTracking\n* Have it's own trade management system(so I don't need to use cointracking)\n    * Mimic the CoinTracking \"Enter Coins\" page?\n    * Allow editing Trades directly from Trades List view\n    * Database: Persistent/Esqueleto, ACID State, or Beam? Needs `ReaderT IO`\n      in update.\n    * Full data exports in CSV and/or XLS/ODS.\n    * Allow Tagging/Grouping Trades(Search/Filter)\n    * Track Exchanges(Search/Filter)\n    * Import trades directly from GDAX \u0026 Binance API or exports instead of\n      CoinTracking. Maybe add them as \"unapproved\" until edited/verified by\n      User.\n* Have additional views(dashboard, add/edit trades, watch list, alerts, etc.)\n    * Current Balance - amount, value, % of holdings, USD price, 1h/24h/7d/30d\n      price trends.\n    * Trade Analysis - CoinTracking only shows this for a single coin to\n      another coin. Maybe abstract the Ethereum Gains view so it works w/ any\n      fiat-market coin \u0026 add an inline trade table?\n    * Fee Report - Table w/ every transaction that has a fee, w/ fee amount \u0026\n      currency, USD value at transaction date, USD value now, date, \u0026 totals in\n      the footer.\n    * See CoinTracking for inspiration of other views / reports to add.\n* Desktop Notifications\n    * Price Alerts\n    * When new Transaction imported from GDAX / Binance APIs\n* Release Table module as Brick Widget package\n* Release Binance \u0026 GDAX modules as package(even though it's incomplete)\n* Debug/info/error logging(Katip or fast-logger packages?), maybe `Message Log`\n  view or just log to file.\n* Coin research views(subreddit, cmc data, wikipedia, google trends)\n* Servant JSON API w/ Elm frontend? Or try reflex-platform for easy\n  web/desktop/mobile cross-compilation?\n* User-definable colorschemes, see `Brick.Themes` module.\n* Support more exchanges if anyone else cares about this.\n\n\n## License\n\nGPL-3.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprikhi%2Fcrypto-portfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprikhi%2Fcrypto-portfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprikhi%2Fcrypto-portfolio/lists"}