A clean and tidy decentralized package manager.
❤️ A project by txthinking.com
bash <(curl https://bash.ooo/nami.sh)
nami install brook
nami list
nami remove brook
You can also upgrade nami by nami
nami install nami
Keep PATH with sudo
sudo visudo
Defaults !env_reset
# Defaults secure_path=...
| Package | Description | Website |
|---|---|---|
| 7z | 7-Zip is a file archiver with a high compression ratio. | Website |
| agg | asciinema gif generator | Website |
| brook-store | A brook user system | Website |
| brook | A cross-platform network tool designed for developers. | Website |
| bun | Incredibly fast JavaScript runtime, bundler, transpiler and package manager – all in one. | Website |
| caddy | Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS | Website |
| cidr-merger | A simple command line tool to merge ip/ip cidr/ip range, supports IPv4/IPv6 | Website |
| cloudflare | cloudflare cli | Website |
| cloudupload | Upload files to multiple Cloud Storage in parallel. Automatically apply for ssl certificate with your domain. | Website |
| cmake | CMake, the cross-platform, open-source build system. | Website |
| cowsay | cowsay is reborn. Neo Cowsay has written in Go. | Website |
| curl | curl with http3 support | Website |
| d2 | D2 is a modern diagram scripting language that turns text to diagrams. | Website |
| deno | A modern runtime for JavaScript and TypeScript. | Website |
| denobundle | Bundle assets into the binary with deno compile | Website |
| etcd | Distributed reliable key-value store for the most critical data of a distributed system | Website |
| fd | A simple, fast and user-friendly alternative to 'find' | Website |
| ffmpeg | A complete, cross-platform solution to record, convert and stream audio and video. | Website |
| fzf | A command-line fuzzy finder | Website |
| go | An open-source programming language supported by Google | Website |
| hancock | Manage multiple remote servers and execute commands remotely | Website |
| hey | HTTP load generator, ApacheBench (ab) replacement | Website |
| httpserver | This is a very simple http static server, sometimes we need it for testing | Website |
| icnsify | Easily create .icns files (Mac Icons) | Website |
| ipatool | Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store | Website |
| joker | Joker can turn process into daemon. Zero-Configuration | Website |
| jq | Command-line JSON processor | Website |
| mad | Generate root CA and derivative certificate for any domains and any IPs | Website |
| markdown | markdown converter | Website |
| marp | A CLI interface for Marp and Marpit based converters | Website |
| minify | Go minifiers for web formats | Website |
| nami | The easy way to download anything from anywhere | Website |
| nico | A HTTP3 web server for reverse proxy and single page application, automatically apply for ssl certificate, Zero-Configuration. | Website |
| ninja | a small build system with a focus on speed | Website |
| nsq | A realtime distributed messaging platform | Website |
| node | Node.js is an open-source, cross-platform JavaScript runtime environment. | Website |
| openwrt | OpenWrt version of brook | Website |
| protoc | Protocol Buffers - Google's data interchange format | Website |
| protoc-gen-js | protoc-gen-js executable | Website |
| rsrc | Tool for embedding .ico & manifest resources in Go programs for Windows. | Website |
| shadowsocks | A Rust port of shadowsocks | Website |
| sshexec | A command-line tool to execute remote command through ssh | Website |
| stuntman | NAT type detection | Website |
| tengo | A fast script language for Go | Website |
| ipio | Proxy all traffic just one line command. | Website |
| yt-dlp | Command-line program to download videos from YouTube.com and other video sites | Website |
| z | a process manager | Website |
| zig | Zig is a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software. | Website |
| zigup | Download and manage zig compilers. | Website |
| zoro | zoro can help you expose local server to external network. Support both TCP/UDP, of course support HTTP. Zero-Configuration | Website |
$HOME/.nami: All files of nami$HOME/.nami/bin: When installing nami, this path is already added to your $PATH$HOME/.nami/cache: This directory will be emptied before installing package- If the package can be standalone executable files:
- The script should save only executable files to here. Such as shadowsocks.tengo
After the installation process is finished, nami will copy these files to the
$HOME/.nami/bindirectory - If the package is a directory:
- The script should save the directory into here. Such as go.tengo
- And write the relative paths of executable files to
linksfile, one path per line. Such as go.tengo
After the installation process is finished, nami will copy the directory to the
$HOME/.nami/dir/directory and will create symbolic links to the$HOME/.nami/binbased onlinks - Write version to
versionfile
- If the package can be standalone executable files:
$HOME/.nami/copied: This is usually used if the command to be installed is running, such as brook.tengo, you may:- get the processes
- stop the processes
- copy(not move) the commands from
$HOME/.nami/cacheto$HOME/.nami/bin - copy the commands from
$HOME/.nami/cacheto$HOME/.nami/copied, this prompts nami not to perform duplicate operations - run the previously stopped processes again
tengo
Nami supports tengo script, there is a built-in module import("nami") for convenience:
nami.os: linux/darwin/windows/...nami.arch: amd64/arm64/...nami.home_dir: $HOMEnami.bin_dir: $HOME/.nami/binnami.cache_dir: $HOME/.nami/cachenami.copied_dir: $HOME/.nami/copiedappend_file(file string, text string) => errorwrite_file(file string, text string) => errorsh(name string, args...) => error: run commandsh1(name string, args...) => bytes/error: run command and return stdoutcp(url string, dst string) => bytes/error: download file to dstcp(url string, { from: dst, from1: dst1 }) => bytes/error: download compressed file, and copy one or more filescp_dir(url string, { from: dst, from1: dst1 }, [link, link1]) => bytes/error: download compressed file, and copy one or more directories, and create symbolic links
nami install ./exmaple.tengo
Fork nami project, put exmaple.tengo to package directory, create PR, then you can
nami install example
nami install https://yourserver.com/exmaple.tengo
Licensed under The GPLv3 License