1
0
Fork
You've already forked smallBashScripts
0
Personal Arsenal
  • Shell 85.5%
  • Nim 10.1%
  • Python 4.2%
  • Makefile 0.2%
Find a file
2026年07月03日 21:32:12 +00:00
demos docs(demos): chasdiscoursethread 2026年06月26日 20:40:09 +00:00
.rgignore refactor(invertclipboard): trim whitespace with tr 2025年12月09日 16:19:48 -03:00
addorgnote refactor: cleaning 2026年06月27日 15:19:46 +00:00
annasarchive-yaml refactor: cleaning 2026年06月27日 15:19:46 +00:00
asciicastsplay refactor: cleaning 2026年06月27日 15:19:46 +00:00
asciinemaexplore refactor: cleaning 2026年06月27日 15:19:46 +00:00
caststats.nim chore(caststats.nim): remove md5 2026年02月14日 08:55:34 -03:00
catscr refactor: cleaning 2026年06月27日 15:19:46 +00:00
chajson refactor: cleaning 2026年06月27日 15:19:46 +00:00
chak refactor: cleaning 2026年06月27日 15:19:46 +00:00
chaq refactor: cleaning 2026年06月27日 15:19:46 +00:00
chas refactor: cleaning 2026年06月27日 15:19:46 +00:00
chasdiscoursethread refactor: cleaning 2026年06月27日 15:19:46 +00:00
claudeusage refactor: cleaning 2026年06月27日 15:19:46 +00:00
confirm refactor: cleaning 2026年06月27日 15:19:46 +00:00
curldiff style: lint 2026年06月27日 15:20:29 +00:00
curtask refactor: cleaning 2026年06月27日 15:19:46 +00:00
ddglite refactor: cleaning 2026年06月27日 15:19:46 +00:00
decolor refactor: cleaning 2026年06月27日 15:19:46 +00:00
demoji refactor: cleaning 2026年06月27日 15:19:46 +00:00
discoursesearch refactor: cleaning 2026年06月27日 15:19:46 +00:00
dumpjiraxml refactor: cleaning 2026年06月27日 15:19:46 +00:00
dumpytvideo fix(dumpytvideo): import 2026年01月11日 05:03:56 +00:00
dupefiles refactor: cleaning 2026年06月27日 15:19:46 +00:00
epub2org refactor: cleaning 2026年06月27日 15:19:46 +00:00
exportslack refactor: cleaning 2026年06月27日 15:19:46 +00:00
forgejosearch refactor: cleaning 2026年06月27日 15:19:46 +00:00
fsmps refactor: cleaning 2026年06月27日 15:19:46 +00:00
gcl feat: pandocrecursive 2026年06月28日 12:10:20 +00:00
gcl-gh refactor: cleaning 2026年06月27日 15:19:46 +00:00
gcl-search-fj refactor: cleaning 2026年06月27日 15:19:46 +00:00
getapkpure refactor: cleaning 2026年06月27日 15:19:46 +00:00
getorgnode style: lint 2026年06月27日 15:20:29 +00:00
ghfetchcodereviews refactor: cleaning 2026年06月27日 15:19:46 +00:00
ghlastrunjob refactor: cleaning 2026年06月27日 15:19:46 +00:00
git-file-versions refactor: cleaning 2026年06月27日 15:19:46 +00:00
git-gc refactor: cleaning 2026年06月27日 15:19:46 +00:00
git-set-branch-to-hostname fix(git-set-branch-to-hostname): sbs-helper-qubes-p 2026年07月01日 12:58:14 +00:00
goinstallddgresult refactor: cleaning 2026年06月27日 15:19:46 +00:00
guixpackagesearch refactor: cleaning 2026年06月27日 15:19:46 +00:00
hnhiring feat: hnhiring 2026年06月29日 14:26:31 +00:00
invertclipboard refactor: cleaning 2026年06月27日 15:19:46 +00:00
kiwixjsoncatalog refactor: cleaning 2026年06月27日 15:19:46 +00:00
LICENSE docs: LICENSE and README 2025年11月13日 08:11:45 -03:00
Makefile chore(makefile): utilities 2026年01月02日 09:23:10 -03:00
mitm wip(mitm,proxy,safeopencode): mitmproxy 2026年07月03日 21:23:00 +00:00
muextractfiles refactor: cleaning 2026年06月27日 15:19:46 +00:00
nanoasciicastaterror refactor: cleaning 2026年06月27日 15:19:46 +00:00
nsla refactor: cleaning 2026年06月27日 15:19:46 +00:00
ocrclipimg refactor: cleaning 2026年06月27日 15:19:46 +00:00
pandocrecursive feat: pandocrecursive 2026年06月28日 12:10:20 +00:00
passaws refactor: cleaning 2026年06月27日 15:19:46 +00:00
prompt refactor: cleaning 2026年06月27日 15:19:46 +00:00
proxy wip(mitm,proxy,safeopencode): mitmproxy 2026年07月03日 21:23:00 +00:00
qrclipimg refactor: cleaning 2026年06月27日 15:19:46 +00:00
qvm-copy-git-bundle refactor: cleaning 2026年06月27日 15:19:46 +00:00
qvm-move-git-bundle feat: qvm-move-git-bundle 2026年07月01日 13:10:42 +00:00
README.org docs: readme 2026年07月01日 13:10:54 +00:00
recact refactor: cleaning 2026年06月27日 15:19:46 +00:00
recaction refactor: cleaning 2026年06月27日 15:19:46 +00:00
recdemo refactor: cleaning 2026年06月27日 15:19:46 +00:00
recloop refactor: cleaning 2026年06月27日 15:19:46 +00:00
resolveenv refactor: cleaning 2026年06月27日 15:19:46 +00:00
restclient refactor: cleaning 2026年06月27日 15:19:46 +00:00
rewind refactor: cleaning 2026年06月27日 15:19:46 +00:00
rmunamedimages refactor: cleaning 2026年06月27日 15:19:46 +00:00
safeopencode wip(safeopencode): mitmproxy 2026年07月03日 21:32:12 +00:00
savebrowsing refactor: cleaning 2026年06月27日 15:19:46 +00:00
sbs-deps refactor: cleaning 2026年06月27日 15:19:46 +00:00
sbs-help chore(sbs-help): no indent 2026年06月28日 11:55:41 +00:00
sbs-helper-git-repo-p fix: git-set-branch-to-hostname 2026年06月27日 15:27:00 +00:00
sbs-helper-qubes-p fix: git-set-branch-to-hostname 2026年06月27日 15:27:00 +00:00
site2org refactor: cleaning 2026年06月27日 15:19:46 +00:00
sqlite2json refactor: cleaning 2026年06月27日 15:19:46 +00:00
termshot refactor: cleaning 2026年06月27日 15:19:46 +00:00
termshotpdf refactor: cleaning 2026年06月27日 15:19:46 +00:00
textarea refactor: cleaning 2026年06月27日 15:19:46 +00:00
timestampsjsonlstats.nim docs: timestampsjsonlstats.nim 2026年05月09日 22:44:47 +00:00
txtfix refactor: cleaning 2026年06月27日 15:19:46 +00:00
viewansi refactor: cleaning 2026年06月27日 15:19:46 +00:00
viewawslogs refactor: cleaning 2026年06月27日 15:19:46 +00:00
viewghcodereviews refactor: cleaning 2026年06月27日 15:19:46 +00:00
viewslackchat fix: viewslackchat 2026年06月29日 15:10:35 +00:00
viewslackmedia refactor: cleaning 2026年06月27日 15:19:46 +00:00
viewslacktranscript fix: viewslacktranscript 2026年06月29日 14:45:24 +00:00
viewwebpagemedia refactor: cleaning 2026年06月27日 15:19:46 +00:00
wanna4get.nim style: scripts 2026年04月28日 09:27:52 -03:00
webpagejsons feat(webpagejsons): stringified json 2026年07月03日 19:54:34 +00:00
webpageurls fix: webpageurls 2026年06月30日 12:52:25 +00:00
wgetrecursesite refactor: cleaning 2026年06月27日 15:19:46 +00:00

Small Bash Scripts

Code Design

The scripts follows a set of rules:

  • CLI help and arg count requirement by sbs-help.
  • Dependency enforcement by sbs-deps.
  • Help texts are written in Org Mode. See sbs-help
  • Bash conventions

    • Variables and functions in snake_case.
    • Always fail-fast for explicit error handling (set -e)
    • Declare the args as variables immediately, no positional argument (1ドル) usage across script.

Script template:

#!/usr/bin/env bash

# my-new-script - Quick description (mandatory, Org Mode used by sbs-help)
# This script is a sample and this line is included in help's description block.
# Also this line
# But not this line
set -e # (mandatory)
sbs-help "0ドル" '<my-mandatory-arg> [my-optional-arg default=test]' 1 "$@"
sbs-deps git --soft curl # (list all required binaries. after --soft means the script work with caveats, execution continues with a warning)
my_mandatory_arg="1ドル"
my_optional_arg="${2:-test}"
# ...

Self Documentation

Last update 2026年07月01日T10:10:50-03:00
addorgnote (4 commits; 53 lines)
Create notes on the Emacs clocked task via CLI
annasarchive-yaml (6 commits; 43 lines) Demo asciicast (5 commits behind)
Given a URL, creates a YAML file in this format.
asciicastsplay (8 commits; 37 lines)
Plays a recorded asciicast stored in Git repo index by commit hash.
asciinemaexplore (10 commits; 69 lines) Demo asciicast (9 commits behind)
Scrapes https://asciinema.org explore page to JSON
caststats.nim (15 commits; 80 lines) Demo asciicast (2 commits behind)
Stats about a asciicast.
catscr (10 commits; 17 lines) Demo asciicast (5 commits behind)
Prints the screen screenshot as text in the terminal
chajson (12 commits; 34 lines) Demo asciicast (10 commits behind)
Read JSON in Chawan to click on links
chak (12 commits; 20 lines) Demo asciicast (7 commits behind)
You accidentally pressed q, select from Chawan history and go back to your browsing.
chaq (18 commits; 56 lines) Demo asciicast (8 commits behind)
Chawan query: helper to easily search with Chawan
chas (18 commits; 92 lines) Demo asciicast (16 commits behind)
Save Chawan page as rendered ANSI
chasdiscoursethread (4 commits; 31 lines) Demo asciicast (2 commits behind)
Iterate chas over all pages of a discourse threads
claudeusage (8 commits; 35 lines) Demo asciicast (7 commits behind)
See how fast you eat your tokens.
confirm (6 commits; 33 lines)
Drop-in replacement for gum confirm.
curldiff (6 commits; 43 lines) Demo asciicast (4 commits behind)
Fetches twice and compare
curtask (19 commits; 13 lines) Demo asciicast (4 commits behind)
Returns the ID of the current clocked Org node
ddglite (8 commits; 49 lines) Demo asciicast (6 commits behind)
Parses DuckDuckGo Lite search into JSON
decolor (5 commits; 18 lines)
Strip ANSI escape codes
demoji (3 commits; 17 lines)
Strip emoji and pictographs from text
discoursesearch (10 commits; 47 lines) Demo asciicast (8 commits behind)
Searches in a Discorse instance through internal API
dumpjiraxml (6 commits; 31 lines)
Fetches Jira issues and writes to a file
dumpytvideo (7 commits; 85 lines)
Downloads a YouTube video with all its metadata
dupefiles (11 commits; 28 lines) Demo asciicast (10 commits behind)
Ineffective recursive duplicated files finder
epub2org (7 commits; 54 lines)
Unpacks EPUB, recurse its HTML files and packs into a single Org file.
exportslack (7 commits; 109 lines)
Runs slackdump, fetch huddles transcripts and slackbot canvases on the provided workspace available on pass's slack/ path.
forgejosearch (7 commits; 49 lines)
Search in Forgejo instances via API
fsmps (4 commits; 45 lines)
Loops each second showing the file/dir stats with size comparison
gcl (16 commits; 33 lines) Demo asciicast (11 commits behind)
Batch git clone that saves at ${OWNER}-${REPO} instead ${REPO}, fetches other refs and setups user for Magit Forge.
gcl-gh (6 commits; 31 lines)
Clone all repos from a GitHub user
gcl-search-fj (4 commits; 44 lines)
Searches at Forgejo and clones search results
getapkpure (4 commits; 18 lines)
Fetches an APK from apkpure
getorgnode (24 commits; 63 lines)
Get Org Node by ID via CLI
ghfetchcodereviews (4 commits; 62 lines)
Fetch all PR review comments for a GitHub repo
ghlastrunjob (6 commits; 16 lines)
Laziness alias to see last run via gh CLI
git-file-versions (7 commits; 34 lines) Demo asciicast (3 commits behind)
Dumps all revisions of a Git tracked file to a dir.
git-gc (8 commits; 22 lines) Demo asciicast (3 commits behind)
Convenience script for git gc with a size comparison from before and after the GC.
git-set-branch-to-hostname (9 commits; 35 lines) Demo asciicast (5 commits behind)
Sets the branch of the current Git repo to the system hostname
goinstallddgresult (9 commits; 32 lines) Demo asciicast (5 commits behind)
Search a Go package and install it without the need to remember the Git repo
guixpackagesearch (7 commits; 57 lines) Demo asciicast (6 commits behind)
Searches on https://packages.guix.gnu.org and parses HTML.
hnhiring (1 commits; 110 lines)
Fetch HN "Who is hiring?" thread, rank jobs, emit JSON array
invertclipboard (8 commits; 25 lines)
Exchanges xclip content from primary into clipboard and vice-versa. Pro tip: Use a tmux keybind.
kiwixjsoncatalog (5 commits; 22 lines)
Converts library-zim.xml to JSONL. No streaming, dumps to stdout, inefficient.
muextractfiles (4 commits; 16 lines)
Lazy script to search term and extracts its files.
nanoasciicastaterror (4 commits; 17 lines)
Edits the current recaction cast at its corrupted line.
nsla (7 commits; 45 lines) Demo asciicast (4 commits behind)
traNSLAte: Libre Translate CLI client
ocrclipimg (6 commits; 11 lines)
Alias to get text from clipboard image using Tesseract OCR
pandocrecursive (1 commits; 19 lines)
Recurse files converting with pandoc
passaws (7 commits; 18 lines)
Run AWS CLI with a pass directory.
prompt (8 commits; 63 lines)
Replacing gum by fzf with even more UX. (But less DX)
qrclipimg (3 commits; 11 lines)
Decodes clipboard QR Code image to text
qvm-copy-git-bundle (7 commits; 75 lines)
Generates Git bundles including all branches of multiple repos and moves to another qube
qvm-move-git-bundle (1 commits; 24 lines)
Runs /thisago/smallBashScripts/src/branch/master/qvm-copy-git-bundle and deletes the repos on success.
recact (46 commits; 336 lines)
Intention driven terminal session recordings
recaction (16 commits; 61 lines)
Convenience script for calling recact
recdemo (11 commits; 28 lines)
Records a asciicast with pre-configured visuals.
recloop (26 commits; 94 lines)
Waits RET to record a session on a specific command, execute a post script and loops it again
resolveenv (9 commits; 59 lines) Demo asciicast (4 commits behind)
Preprocess a .env file by resolving pass calls.
restclient (30 commits; 216 lines) Demo asciicast (9 commits behind)
Runs Emacs restclient.el from CLI
rewind (11 commits; 81 lines)
Watch the last lines of your terminal again, and again. (Supports search and arbitrary cast file)
rmunamedimages (3 commits; 14 lines)
Deletes OCI images named <none>
safeopencode (20 commits; 89 lines) Demo asciicast (14 commits behind)
Runs opencode inside a Guix Shell container for file system isolation
savebrowsing (13 commits; 45 lines)
Commits browser-user repo
sbs-deps (1 commits; 21 lines)
[internal] Require binaries from PATH
sbs-help (3 commits; 78 lines)
[internal] Convenience importing script to generate help texts. Returns error if shouldn't run
sbs-helper-git-repo-p (2 commits; 17 lines)
[internal] Is this a Git repo?
sbs-helper-qubes-p (2 commits; 13 lines)
No description yet
site2org (7 commits; 33 lines)
Fetches a HTML page with wget and converts into Org with pandoc.
sqlite2json (5 commits; 33 lines)
Dumps all SQLite tables into JSON files
termshot (16 commits; 53 lines) Demo asciicast (12 commits behind)
Dumps current tmux pane, converts to SVG and commits. Tip: Use a keybind.
termshotpdf (3 commits; 22 lines)
Saves PDF as ansi termshot
textarea (6 commits; 26 lines) Demo asciicast (3 commits behind)
Opens $EDITOR at provided file and strips the comments.
timestampsjsonlstats.nim (6 commits; 107 lines)
Stats from timestamps.jsonl generated by recact (Unusable yet)
txtfix (7 commits; 53 lines) Demo asciicast (3 commits behind)
Translate to a language then translate it back to "fix" the text using Libre Translate
viewansi (9 commits; 42 lines)
Select and read previously saved ANSI shots from termshot and chas.
viewawslogs (4 commits; 26 lines)
Interactively read CloudWatch logs (Nice for noobs!)
viewghcodereviews (3 commits; 39 lines)
Render saved PR review JSON files as readable text
viewslackchat (4 commits; 20 lines)
Read export JSONs in Markown
viewslackmedia (7 commits; 40 lines)
Fetch raw file URL via emacs-slack and pipe to with mpv
viewslacktranscript (9 commits; 34 lines)
Formats a Slack Huddle transcript into readable Markdown and reads with bat pager
viewwebpagemedia (9 commits; 23 lines) Demo asciicast (6 commits behind)
Select a media URL from a HTML page and play with mpv
wanna4get.nim (5 commits; 83 lines) Demo asciicast (1 commits behind)
Wanna 4get instances? Without captcha? Let's see.
webpagejsons (5 commits; 107 lines)
Extract JSON blobs from a web page as minified JSONL.
webpageurls (14 commits; 32 lines) Demo asciicast (11 commits behind)
Greps URLs inside a web page
wgetrecursesite (6 commits; 50 lines) Demo asciicast (5 commits behind)
Mirror a website