-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
143 lines (122 loc) · 6.46 KB
/
Copy pathflake.nix
File metadata and controls
143 lines (122 loc) · 6.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
{
description = "malleroid dotfiles CLI package bundle";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
# 2026-08-23: mise pulls in `usage`, whose cargo vendor derivation is not
# cached for aarch64-darwin on recent unstable revisions. Pin to a revision
# with a verified cache hit; re-check with nix-check-pins later.
nixpkgs-mise.url = "github:NixOS/nixpkgs/9e92285f211dad236540fd617d7e30e0b99bc0e1";
};
outputs = { nixpkgs, nixpkgs-mise, ... }:
let
system = "aarch64-darwin";
pkgs = import nixpkgs { inherit system; };
pkgsMise = import nixpkgs-mise { inherit system; };
cliPaths = with pkgs; [
# ## AI
aichat # All-in-one AI-Powered CLI Chat & Copilot
tgpt # AI Chatbots in terminal without needing API keys
# ## API
httpie # User-friendly cURL replacement (command-line HTTP client)
httptap # View HTTP/HTTPS requests made by any program
openapi-tui # TUI to list, browse and run APIs defined with openapi spec
posting # Modern API client that lives in your terminal
# ## Benchmark
hyperfine # Command-line benchmarking tool
# ## Cloud
awscli2 # Official Amazon AWS command-line interface (brew: awscli)
google-cloud-sdk # Google Cloud CLI (brew: gcloud-cli)
ssm-session-manager-plugin # Plugin for AWS CLI to start and end sessions (brew: session-manager-plugin)
granted # Easiest way to access your cloud
# ## Database
dolt # Version-controlled SQL database (required by beads/bd)
lazysql # Cross-platform TUI database management tool
tabiew # TUI to view and query tabular files (CSV,TSV, Parquet, etc.)
# ## Dev
act # Run your GitHub Actions locally
code2prompt # CLI tool to convert your codebase into a single LLM prompt
jira-cli-go # Feature-rich interactive Jira command-line (brew: jira-cli)
pkgsMise.mise # Polyglot runtime manager (asdf rust clone) (pinned via nixpkgs-mise input)
neovim # Ambitious Vim-fork focused on extensibility and agility
scc # Fast and accurate code counter with complexity and COCOMO estimates
tree-sitter # Parser generator CLI (required by nvim-treesitter main branch)
# ## DevOps
dive # Tool for exploring each layer in a docker image
lazydocker # Lazier way to manage everything docker
lazyssh # Terminal-based SSH manager
terraformer # CLI tool to generate terraform files from existing infrastructure
tflint # Linter for Terraform files
# ## Doc
glow # Render markdown on the CLI
gocheat # TUI Cheatsheet for keybindings, hotkeys and more
poppler-utils # PDF utilities (pdftotext, pdfinfo, pdfimages, pdftoppm)
slides # Terminal based presentation tool
tlrc # Official tldr client written in Rust
# ## FileManager
aria2 # Download with resuming and segmented downloading
bat # Clone of cat(1) with syntax highlighting and Git integration
eza # Modern, maintained replacement for ls
fd # Simple, fast and user-friendly alternative to find
filebrowser # Web File Browser
fzf # Command-line fuzzy finder written in Go
yazi # Blazing fast terminal file manager written in Rust, based on async I/O
zoxide # Shell extension to navigate your filesystem faster
# ## Git
gh # GitHub command-line tool
ghq # Remote repository management made easy
git # Distributed revision control system
delta # Syntax-highlighting pager for git and diff output (brew: git-delta)
gitui # Blazing fast terminal-ui for git written in rust
# ## Media
ffmpeg # Play, record, convert, and stream audio and video
yt-dlp # Download video/audio/subtitles from YouTube and other sites
spotify-player # Command driven spotify player (brew: spotify_player)
# ## MCP
mcp-grafana # MCP server for Grafana
terraform-mcp-server # MCP server for Terraform
# ## Monitor
bandwhich # Terminal bandwidth utilization tool
duf # Disk Usage/Free Utility - a better 'df' alternative
dust # More intuitive version of du in rust
fastfetch # Like neofetch, but much faster because written mostly in C
glances # Alternative to top/htop
htop # Improved top (interactive process viewer)
hwatch # Modern alternative to the watch command
nvtopPackages.apple # Interactive GPU process monitor (brew: nvtop, Apple GPU variant)
procs # Modern replacement for ps written in Rust
tailspin # Log file highlighter
# ## Network
gping # Ping, but with a graph
# ## Search
gnugrep # GNU grep, egrep and fgrep (brew: grep)
igrep # Interactive grep
jless # Command-line pager for JSON data
dasel # Query and modify data structures (JSON, TOML, YAML, etc.)
jq # Lightweight and flexible command-line JSON processor
jqp # TUI playground to experiment and play with jq
ripgrep # Search tool like grep and The Silver Searcher
# ## Security
mkcert # Make locally-trusted development certificates
oath-toolkit # Tools for one-time password authentication systems
radare2 # Reverse engineering framework
# ## Shell
fish # User-friendly command-line shell for UNIX-like operating systems
pay-respects # Programmatically correct mistyped console commands (brew: thefuck, Rust replacement)
starship # Cross-shell prompt for astronauts
zellij # Pluggable terminal workspace, with terminal multiplexer as the base feature
# ## Util
gnused # GNU implementation of the famous stream editor (brew: gnu-sed)
];
in
{
packages.${system}.default = pkgs.buildEnv {
name = "dotfiles-cli";
paths = cliPaths;
};
# Per-package version manifest for the bundle above. flake.lock only
# records input revisions, so scripts/bump-flake.sh dumps this into
# package-versions.json to make lock bumps reviewable per package.
packageVersions.${system} = builtins.listToAttrs
(map (p: { name = p.pname or p.name; value = p.version or "unknown"; }) cliPaths);
};
}