Skip to content
This repository has been archived by the owner on Jul 10, 2023. It is now read-only.

demfabris/gistit

Repository files navigation

Gistit - Share user snippets

⚡️ Quick and easy code snippet sharing tool

Crates.io Crates.io

A feature packed, hash based code snippet sharing tool focused on ease of use and simplicity.

⭐ Features

send and fetch gif

  • TUI support - send and preview gistits without leaving the terminal. (uses bat) 🦇
  • Easy to use - command line API made for humans, shell completion and fancy spinners. 👨‍🎨
  • Open source - Independent web application and server, open source top to bottom.
  • Integrated - Integration with GitHub Gists.
  • Handy - system clipboard integration that actually works.
  • Peer to peer - peer to peer file sharing via libp2p. The network stach behind IPFS. 🌐

Feature requests

I want a feature

Windows support comming soon

CLI

Basic Usage

You can send a local file or stdin.

# Local file
$ gistit myfile.txt

# Stdin
$ ls | gistit

# Additional info
$ ls | gistit -a "Matthew McConaughey" -d "My ls, lol"

Post to GitHub Gists.

$ gistit myfile.txt --github
# A browser window will open to authorize Github OAuth.
# Hit **authorize** and wait for the CLI to resume automatically.

Copy hash to system clipboard.

$ gistit myfile.txt -c
# Hash is now on your clipboard

Fetching gistits

# Fetch and preview
$ gistit f 8765d324ddd800f1112e77fece3d3ff2

# Fetch and save to local data directory
$ gistit f 8765d324ddd800f1112e77fece3d3ff2 --save

P2p

Peer to peer file sharing is opt in. Simply install gistit-daemon and start the background process.

# Start
$ gistit node --start

# Check network status
$ gistit node --status

# Stop
$ gistit node --stop

If gistit-daemon is running sending and fetching gistits will be automatically done via IPFS network.

Installation

Compiled binaries

Check releases

With AUR

gistit-bin

From crates.io

cargo install gistit gistit-daemon

From source (msrv 1.58)

# Clone
$ git clone https://github.com/fabricio7p/gistit.git

# Move
$ cd gistit

# Build
$ cargo build --release

Your binary will be inside target/release folder.

License

Licensed under either of MIT or Apache-2.0 at your option.