A fast and lightweight interactive terminal based UI application for tracking cryptocurrencies 🚀


logo


cointop

Coin tracking for hackers

License Build Status Go Report Card GoDoc Mentioned in Awesome Terminals PRs Welcome

cointop is a fast and lightweight interactive terminal based UI application for tracking and monitoring cryptocurrency coin stats in real-time.

The interface is inspired by htop and shortcut keys are inspired by vim.

cointop screenshot

Demo

ssh cointop.sh

In action

screencast

Table of Contents

Features

  • Quick sort shortcuts
  • Custom key bindings configuration
  • Vim inspired shortcut keys
  • Fast pagination
  • Charts for coins and global market graphs
  • Quick chart date range change
  • Fuzzy searching for finding coins
  • Currency conversion
  • Save and view favorite coins
  • Portfolio tracking of holdings
  • 256-color support
  • Custom colorschemes
  • Help menu
  • Offline cache
  • Supports multiple coin stat APIs
  • Auto-refresh
  • Works on macOS, Linux, and Windows
  • It's very lightweight; can be left running indefinitely

Documentation

Documentation has been moved to docs.cointop.sh

Some helpful documentation links are provided below.

Install

See docs.cointop.sh/install

Update

See docs.cointop.sh/update

Shortcuts

See docs.cointop.sh/shortcuts

Colorschemes

See docs.cointop.sh/colorschemes

Config

See docs.cointop.sh/config

SSH Server

See docs.cointop.sh/ssh

FAQ

See docs.cointop.sh/faq

Contributing

See docs.cointop.sh/contributing

Social

Mentioned in

Cointop has been mentioned in:

Tip Jar

BTC Tip Jar 3KdMW53vUMLPEC33xhHAUx4EFtvmXQF8Kf

ETH Tip Jar 0x0072cdd7c3d9963ba69506ECf50e16E963B35bb1

Thank you for tips! 🙏

License

Released under the Apache 2.0 license.

Owner
Miguel Mota
#golang #node #terminal #linux #decentralization
Miguel Mota
Comments
  • Docker - SSH key is required to start server

    Docker - SSH key is required to start server

    Hi,

    I'm trying to run cointop on docker. But I can't seem to get it to run. Instead I get an error "SSH key is required to start server"

    docker run -p 2222:2222 -v ~/.ssh:/keys --entrypoint cointop -it cointop/cointop server -k /keys/id_rsa
    Running SSH server on port 22
    Error: SSH key is required to start server
    Usage:
      cointop server [flags]
    
    Flags:
      -a, --address string         Address (default "0.0.0.0")
      -b, --binary string          Executable binary path (default "cointop")
      -h, --help                   help for server
      -k, --host-key-file string   Host key file (default "~/.ssh/id_rsa")
      -t, --idle-timeout uint      Idle timeout in seconds. Default is 0 for no idle timeout
          --max-sessions uint      Max number of sessions allowed. Default is 0 for unlimited.
      -m, --max-timeout uint       Max timeout in seconds. Default is 0 for no max timeout
      -p, --port uint              Port (default 22)
    
    SSH key is required to start server
    
  • Tokens without RANK is not showing

    Tokens without RANK is not showing

    Hello, thank you for your amazing project. I am a newbie to cointop, and found that the tokens without a rank on CoinGecko is not showing and cannot be searched.

    For example, dForce USD, USX do not have a rank, and cannot be found with searching.

    Could you please help with this problem?

  • undefined: time.UnixMilli when updating

    undefined: time.UnixMilli when updating

    Xubuntu 20.04 with golang-go:amd64/focal 2:1.13~1ubuntu2 uptodate installed

    updating the installed compiled binary (or trying to install fresh) fails with this error, on 2 different PCs for me:

    go get -u github.com/cointop-sh/cointop
    # github.com/cointop-sh/cointop/pkg/timedata
    go/src/github.com/cointop-sh/cointop/pkg/timedata/timedata.go:43:14: undefined: time.UnixMilli
    go/src/github.com/cointop-sh/cointop/pkg/timedata/timedata.go:44:14: undefined: time.UnixMilli
    go/src/github.com/cointop-sh/cointop/pkg/timedata/timedata.go:52:13: undefined: time.UnixMilli
    go/src/github.com/cointop-sh/cointop/pkg/timedata/timedata.go:53:13: undefined: time.UnixMilli
    go/src/github.com/cointop-sh/cointop/pkg/timedata/timedata.go:68:16: undefined: time.UnixMilli
    
  • Add support for purchase price/currency to portfolio

    Add support for purchase price/currency to portfolio

    Add support for declaring a BuyPrice and BuyCurrency in portfolio. eg: ["Algorand", "125.4", "0.8", "USD"]

    Add optional (default off) columns to portfolio: "buy_price", "buy_currency", "profit", "profit_percent"

    TODO:

    • currency conversion
    • (maybe) merge price/currency into one column
    • add to "cointop holdings" output
    • column sorting shortcuts
    • alerts based on profit
    • column formatting improvements?
  • Get portfolio value by calling cointop with a flag/command

    Get portfolio value by calling cointop with a flag/command

    Hi there,

    Is there a chance to consider adding command for getting current portfolio value? We could use that for piping the results and further manipulate them.

    Something like: cointop portfolio-value shich would print something like

    Total Portfolio Value: $1.001
    24H: -10.01%
    

    Important to know and nice to have:

    • Do not show any ascii chars and use only plaintext
    • Separate values into rows so we could minimize the number of tools used for manipulation. In above example, you could get details by using cointop portfolio-value | tail -1 and you would get something like 24H: -10.01%
  • (enhancement) Shortcut to open the coingecko coin page in default browser

    (enhancement) Shortcut to open the coingecko coin page in default browser

    Just an idea: I believe that being able to launch the corresponding coingecko coin page in the browser via a shortcut would be extremely useful. The cointop built-in graph in the terminal is very useful but very often I feel the need to quickly open up a proper graph in the browser. I'm not sure if that would be easy to implement or even technically achievable tough...

  • panic when running in termux

    panic when running in termux

    panic: mkdir /tmp: read-only file system
    
    goroutine 1 [running]:
    github.com/miguelmota/cointop/cointop/common/filecache.NewFileCache(0x40001f3a70, 0x5)
            /data/data/com.termux/files/home/go/pkg/mod/github.com/miguelmota/[email protected]/cointop/common/filecache/filecache.go:45 +0x160
    github.com/miguelmota/cointop/cointop.NewCointop(0x40001f3c50, 0x5be5b5a6f6, 0xc, 0x0)
            /data/data/com.termux/files/home/go/pkg/mod/github.com/miguelmota/[email protected]/cointop/cointop.go:180 +0x1c24
    github.com/miguelmota/cointop/cointop/cmd.RootCmd.func1(0x40001a6b00, 0x5be60008b0, 0x0, 0x0, 0x0, 0x0)
            /data/data/com.termux/files/home/go/pkg/mod/github.com/miguelmota/[email protected]/cointop/cmd/root.go:80 +0x1d0
    github.com/spf13/cobra.(*Command).execute(0x40001a6b00, 0x40001121b0, 0x0, 0x0, 0x40001a6b00, 0x40001121b0)
            /data/data/com.termux/files/home/go/pkg/mod/github.com/spf13/[email protected]/command.go:842 +0x2f8
    github.com/spf13/cobra.(*Command).ExecuteC(0x40001a6b00, 0x40001f3f18, 0x8, 0x8)
            /data/data/com.termux/files/home/go/pkg/mod/github.com/spf13/[email protected]/command.go:950 +0x24c
    github.com/spf13/cobra.(*Command).Execute(...)
            /data/data/com.termux/files/home/go/pkg/mod/github.com/spf13/[email protected]/command.go:887
    github.com/miguelmota/cointop/cointop/cmd.Execute()
            /data/data/com.termux/files/home/go/pkg/mod/github.com/miguelmota/[email protected]/cointop/cmd/cmd.go:22 +0xf4
    main.main()
            /data/data/com.termux/files/home/go/pkg/mod/github.com/miguelmota/[email protected]/main.go:8 +0x18
    
  • Can't delete Ethereum Cash from my portfolio

    Can't delete Ethereum Cash from my portfolio

    Hello,

    I cannot delete Ethereum Cash from my portfolio for a mysterious reason. I can delete all other coins in my portfolio except this one.

    I installed Cointop on my Manjaro using this AUR https://aur.archlinux.org/packages/cointop/#news and signaled this problem on the web page but there is no response, so I am wondering if this is a cointop issue or a AUR packaging one...

    Thank you.

  • allow abbreviated format for volume & market cap

    allow abbreviated format for volume & market cap

    Thanks for the great tool!

    Those of us trying to squeeze it into a relatively tall & narrow window would love the ability to display 24H volume and market cap as something along these lines:

    • 31,280,965,285 becomes 31.2B
    • 451,671,102 becomes 451M
    • 2,984,441 becomes 2.98M
    • and so on

    Basically squish it to 3 significant figures and add a suffix to indicate the multiplier.

  • Use govaluate to evaluate expressions in portfolio entry

    Use govaluate to evaluate expressions in portfolio entry

    Allow expressions such as "5*50 + 10" when entering portfolio values. Uses https://github.com/Knetic/govaluate See https://github.com/miguelmota/cointop/issues/110

  • Portfolio | Duplicate XRP rows

    Portfolio | Duplicate XRP rows

    Hello,

    Eveytime I am adding XRP in my portfolio I am getting 1 or 2 extra "Binance-Peg XRP" rows which I can't remove. I tried changing the holdings value to zero but they still appear on the list. Is there a way to remove them?

    Screenshot-20210514143606-546x100

  • unable to run in Tmux

    unable to run in Tmux

    Hello,

    I didn't see anything on the wiki about this, please advise or close if this is a system-related issue, not actually a bug in the project. I am using an unmodified config.toml file and have replicated the issue when using both termbox and the termbox2-git instsalled on my system. When in a Tmux session, I run the command cointop and I receive the error: termbox: error while reading terminfo data: termbox: unsupported terminal

    Happy to provide system info as required.

  • Add max_pages parameter to config file

    Add max_pages parameter to config file

    This makes it easier to track smaller tokens, or reduce the amount of tokens being tracked. Somewhat fixes #276, until a more refined way of fetching the desired tokens is implemented.

  • Run multiple sorts

    Run multiple sorts

    hi i want to run multiple sorts commands like :

    "sort_column_7d_change" & "sort_column_market_cap" & "sort_column_desc"

    and export them into csv file

    can someone guide me

  • BUG: configuration file is corrupted if multiple instances of cointop are run at once.

    BUG: configuration file is corrupted if multiple instances of cointop are run at once.

    I use cointop for showing price data and my portfolio totals in waybar in sway. Within a few updates, the coinfiguration file is corrupted - I'm fairly sure there's no locking on the file during write because it produces an invalid TOML file. This has a side effect of completely deleting my portfolio.

    I would highly recommend splitting up this configuration file into practical use - there is absolutely NO reason whatever one would want to write a configuration file every single time you open an application. If you are doing this it suggests you should be storing something in .local/ or .cache/ instead.

    Also consider storing portfolio data in a separate file (it belongs in .local actually) as this is not configuration - think of what you'd use, say, nixos or stow or a dotfiles manager for - you want to store your settings, not personal information.

    Regardless, writes are highly destructive and should always be treated with care.

  • (Request) Could it be possible to fetch categories data from coingecko API and display it on cointop?

    (Request) Could it be possible to fetch categories data from coingecko API and display it on cointop?

    See for example https://www.coingecko.com/en/categories . Could it be possible to have cointop to fetch and display this useful data?

    Thank you very much for developing this great project

Ots - The Bhojpur OTS is a software-as-a-service product used as an Object Tracking System based on Bhojpur.NET Platform for application delivery.

Bhojpur OTS - Object Tracking System The Bhojpur OTS is a software-as-a-service product used as an Object Tracking System based on Bhojpur.NET Platfor

Sep 26, 2022
On chain interactive fraud prover for Ethereum
On chain interactive fraud prover for Ethereum

The cannon (cannon cannon cannon) is an on chain interactive fraud prover It's half geth, half of what I think truebit was supposed to be. It can prov

Dec 9, 2022
A terminal application to watch crypto prices!
A terminal application to watch crypto prices!

cryptgo Latest Stable Version: Crytpgo is a TUI based application written purely in Go to monitor and observe cryptocurrency prices in real time! Inst

Dec 21, 2022
Simple, fast and safe cross-platform linear binary stream communication protocol. AES key exchange based on ecc secp256k1

FFAX Protocol 2 dev 简体中文 Welcome to FFAX Protocol v2 Quick start go get github.com/RealFax/FFAX func example() { listener, err := net.Listen("tcp",

Mar 21, 2022
The Fabric Smart Client is a new Fabric Client that lets you focus on the business processes and simplifies the development of Fabric-based distributed application.

Fabric Smart Client The Fabric Smart Client (FSC, for short) is a new Fabric client-side component whose objective is twofold. FSC aims to simplify th

Dec 14, 2022
Akroma GO client - Akroma is an EVM based application development platform (smart-contracts).

Akroma Akroma is an EVM based application development platform (smart-contracts). Akroma will utilize a Masternode system, and build out an Oracle pla

Dec 11, 2022
An application based on fabric Hyperledger

An application based on fabric Hyperledger

Oct 31, 2021
The Bhojpur Wallet is a platform-as-a-service product used as a Wallet Engine based on the Bhojpur.NET Platform for application delivery.

Bhojpur Wallet - Data Processing Engine The Bhojpur Wallet is a platform-as-a-service used as a Service Engine based on the Bhojpur.NET Platform. It l

Sep 26, 2022
A simple and lightweight encrypted password manager written in Go.
A simple and lightweight encrypted password manager written in Go.

Osiris Password Manager A simple and lightweight encrypted password manager written in Go

Jun 16, 2022
A phoenix Chain client based on the go-ethereum fork,the new PoA consensus engine is based on the VRF algorithm.

Phoenix Official Golang implementation of the Phoenix protocol. !!!The current version is for testing and developing purposes only!!! Building the sou

Apr 28, 2022
TTAK.KO-12.0223 Lightweight Encryption Algorithm with Galois/Counter Mode (LEA-GCM)

LEACrypt The Lightweight Encryption Algorithm (also known as LEA) is a 128-bit block cipher developed by South Korea in 2013 to provide confidentialit

Dec 16, 2022
go-actor is a lightweight message framework using actor model

go-actor go-actor is a lightweight message framework using actor model 初衷 想能在代码逻辑上方便的写无锁的同步rpc调用代码,同时又不会阻塞住其他服务对这个Actor的调用 一个Actor可以有多种身份,想能比较方便的分类管理A

Oct 21, 2022
Eunomia is a distributed application framework that support Gossip protocol, QuorumNWR algorithm, PBFT algorithm, PoW algorithm, and ZAB protocol and so on.

Introduction Eunomia is a distributed application framework that facilitates developers to quickly develop distributed applications and supports distr

Sep 28, 2021
Go implementation of SipHash-2-4, a fast short-input PRF created by Jean-Philippe Aumasson and Daniel J. Bernstein.

SipHash (Go) Go implementation of SipHash-2-4, a fast short-input PRF created by Jean-Philippe Aumasson and Daniel J. Bernstein (http://131002.net/sip

Dec 25, 2022
Arbitrum is a Layer 2 cryptocurrency platform that makes smart contracts scalable, fast, and private.
Arbitrum is a Layer 2 cryptocurrency platform that makes smart contracts scalable, fast, and private.

Arbitrum is a Layer 2 cryptocurrency platform that makes smart contracts scalable, fast, and private. Arbitrum interoperates closely with Ethereum, so Ethereum developers can easily cross-compile their contracts to run on Arbitrum. Arbitrum achieves these goals through a unique combination of incentives, network protocol design, and virtual machine architecture.

Jan 8, 2023
CircleHash is a family of fast hashes that pass SMHasher, are faster than XXH64, SipHash, etc. and are easy to audit

CircleHash CircleHash is a family of non-cryptographic hash functions that pass every test in SMHasher (both rurban/smhasher and demerphq/smhasher). T

Sep 18, 2022
A blockchains platform with high throughput, and blazing fast transactions
A blockchains platform with high throughput, and blazing fast transactions

Node implementation for the Avalanche network - a blockchains platform with high throughput, and blazing fast transactions. Installation Avalanche is

Oct 31, 2021
Ethermint is a scalable and interoperable Ethereum library, built on Proof-of-Stake with fast-finality using the Cosmos SDK.
Ethermint is a scalable and interoperable Ethereum library, built on Proof-of-Stake with fast-finality using the Cosmos SDK.

Ethermint Ethermint is a scalable and interoperable Ethereum library, built on Proof-of-Stake with fast-finality using the Cosmos SDK which runs on to

Jan 3, 2023
Dijetsnetgo: a blockchains platform with high throughput, and blazing fast transactions
Dijetsnetgo: a blockchains platform with high throughput, and blazing fast transactions

Node implementation for the Avalanche network - a blockchains platform with high

Jan 18, 2022