File: cmd/fh/info.txt 1 fh [options...] [x/y ranges...] formula 2 3 4 Function Heatmapper emits a picture showing a heatmap view of the function 5 f(x, y) implied by the math expression given. Plenty of math functions and 6 constants are available, all their names being lowercase; the syntax is 7 almost identical to Python/JavaScript's math notation, and has no keywords. 8 9 For convenience, you can treat any 1-input func as a fake-property of its 10 only input; you can also pretend all functions are fake-methods, where the 11 1st input comes before the dot preceding the func name, followed by all the 12 other args to it. All values and functions are global: without namespaces 13 of any kind. 14 15 Ranges for variables `x` and `y` are 0 to 1 by default, but you can change 16 them via the special syntax shown on some of the examples below. Using the 17 keyword `int`, `ints`, or `integers` enables integer-mode, where both `x` 18 and `y` values are only sampled as integers: in that case, formula results 19 will be used to fill whole tiles, instead of single pixels. 20 21 By default, output is PNG-encoded using a good tradeoff between encoding 22 speed and final payload size. Output resolutions can be as shown below, or 23 consist of the width, followed by `x`, followed by the height wanted, such 24 as `1024x768`, for example. 25 26 Options have no flags/prefixes, and are accepted in any order. 27 28 29 Options 30 31 resolution resolution 32 33 4k 3840x2160 4ks 2160x2160 34 hd 1920x1080 hds 1080x1080 35 36 2160p 3840x2160 2160s 2160x2160 37 1440p 2560x1440 1440s 1440x1440 38 1080p 1920x1080 1080s 1080x1080 39 720p 1280x720 720s 720x720 40 41 42 output aliases colorscale aliases 43 44 png magma mag, m 45 bmp bitmap parula par, p 46 jpg jpeg viridis vir, v 47 48 49 Concrete Examples 50 51 52 fh 'x/(x+y)' > corner-fan-1.png 53 54 fh 'y/(x+y)' > corner-fan-2.png 55 56 fh 4k x:=-5..5 y:=1..5 'x.sin.abs / y**1.4' > floor-lights.png 57 58 fh vir x:=-5..5 y:=1..5 'lbeta(x + 5.1, y + 5.1)' > beta-gradient.png 59 60 fh mag 4k xy:=0.01..199.99 'lcm(x.ceil, y.ceil)' > lcm-200.png 61 62 fh par 4k xy:=-5..5 'x.abs + sqrt(abs(sin(2*y)))' > bars.png 63 64 fh x:=-1.5..0.5 y:=-1..1 'mandel(16/9*x, y)' > mandelbrot.png 65 66 fh x:=-1.5..0.5 y:=-1..1 'absmandel(16/9*x, y)' > wobbly-mandelbrot.png 67 68 fh 4k 'sign(cos(160*tau*x) + sin(90*tau*y))' > 90-deg-square-tiles.png 69 70 fh xy:=-10..10 'sin(x.sin+y.cos) + cos(sin(x*y)+cos(y*y))' > crazy-grids.png 71 72 fh 'gauss(sin(50*x) * cos(50*9/16*y) + 1)' > light-tiles.png 73 74 fh xy:=-2..3 'sgn(log((x*x-1)*(x-2-y)/(x*x+2+2*y)))' > abstract-shapes.png 75 76 fh xy:=-10..10 square 'sinc(0.55 * hypot(x, y))' > central-ripple.png File: cmd/finfo/info.txt 1 finfo [options...] [files/folders...] 2 3 Show various file info, mainly filesizes in decreasing order (biggest to 4 smallest): all folders given are explored recursively to find all files in 5 them. 6 7 When exploring files in the current folder, use a dot as the folder name; 8 when not given any file/folder names, it reads those from standard input one 9 name per line, so file paths with spaces don't cause any problem. 10 11 Besides file size and name, it can show other info 12 13 - line counts, except for recognized media files 14 - column counts, in the context of delimiter-separated tabular text data 15 - carriage-return and byte-order-mark counts, except for known media types 16 - width, height, and bits per pixel for pictures and video files 17 - duration/play-length in seconds for all common audio/video files 18 - path of containing folder 19 - extension 20 - MIME type 21 22 Results can also be reverse-sorted by line count, by duration, or any other 23 numeric option/column: there's no way to increase-sort for any of the numeric 24 ranking options. File: cmd/hot/info.txt 1 hot [options...] [filename] 2 3 HOrizontal Tables... and some stats: this app gives you a general overview of 4 what a table file/result has. 5 6 Given tabular data, shows various stats for all columns, along with colored 7 tiles/bars representing all values, as well as the commonest values for all 8 columns. 9 10 When showing values in bar mode (the default), bars for positive values start 11 from the bottom of each cell and go up, while bars for negative values start 12 from the top and go down. File: cmd/jf/info.txt 1 jf [options...] [command] [URIs/files...] 2 3 4 Json Formulas (Jeff) is a data processor/extractor, named after its focus on 5 JSON data, but it can also read/write many more text/binary data formats. It 6 can even output documents via special comments in HTML and SVG templates. 7 8 Jeff also lets you run a command to transform data, run using a surprisingly 9 capable scripting engine. If the command is a dot, it means keep input data 10 as they are. Input and output are JSON by default, but you can use several 11 other formats via options -from and -to, or by using named file/URI inputs. 12 13 Scripts give you all sorts of conveniences you may have come to expect from 14 other popular tools, such as negative indexing, but that's barely scratching 15 the surface: Jeff gives you many other handy features, such as automatic 16 depth-first recursion for most operators and functions. 17 18 19 The data formats supported in options -from and -to are 20 21 notes: - you can add `.gz` or `.gzip` to each input/output option 22 below to gzip-(de)compress input/output 23 24 - you can add `.bz`, `.bzip`, or `.bzip2` to each input 25 option below to decompress bzipped input; no bzip output 26 27 - input-type is autodetected by default when given files 28 and/or URIs to read from; option -from overrides for all 29 30 blocks input empty-line separated blocks/arrays of lines 31 csv input comma-separated values of tabular data 32 each-line input line-by-line / streaming string-input mode 33 each-value input line-by-line / streaming JSONL-input mode 34 ini input configuration values; subset of TOML format 35 ssv input space-separated values of tabular data 36 strict-json input proper JSON: no comments, no trailing commas 37 strict-jsonl input proper JSONL: no comments, no trailing commas 38 sysinfo input use various system info as input 39 unix-conf input key-value pairs from non-comment lines 40 unix-list input only keep non-empty-ish/non-comment lines 41 xml input often used by governments and big org's 42 43 ansi input/output ANSI-code styled plain-text 44 bytes input/output read input as is into a string 45 env input/output lines of equal-sign-separated key-value pairs 46 html input/output web page documents 47 json input/output I/O default, ignores comments & extra commas 48 jsonl input/output JSON Lines: text lines each with a JSON value 49 lines input/output lines of text: as input it's read as an array 50 msgpack input/output message pack, a binary JSON-like data format 51 null input/output don't read any input; don't emit any output 52 text input/output a single text/string value 53 tsv input/output tab-separated values of tabular data 54 55 gron output same as https://github.com/tomnomnom/gron 56 json0 output compact JSON output, without unneeded spaces 57 json1 output JSON output with 1-space indentations 58 json2 output JSON output with 2-spaces indentations 59 json4 output JSON output with 4-spaces indentations 60 jsonl0 output compact JSONL output, without unneeded spaces 61 json-tab output JSON output with tab indentations 62 live output interactive web-browser mode to run formulas 63 rec output grep/sed/awk-friendly plain-text records 64 65 el input alias for each-line (a line-streaming mode) 66 ev input alias for each-value (a line-streaming mode) 67 sj input alias for strict-json 68 sjl input alias for strict-jsonl 69 sys input alias for sysinfo 70 uc input alias for unix-conf 71 ul input alias for unix-list 72 x input alias for xml 73 74 b input/output alias for bytes 75 h input/output alias for html 76 j input/output alias for json 77 jl input/output alias for jsonl 78 l input/output alias for lines 79 mp input/output alias for msgpack 80 n, nil, none input/output aliases for null 81 t input/output alias for text 82 83 j0, j1, j2, j4 output aliases for json0, json1, json2, and json4 84 jl0 output alias for jsonl0 85 jt output alias for json-tab 86 87 88 Scripts can use 250+ predefined funcs, not counting aliases; plenty of global 89 variables with all sorts of data are also available. Some of these predefined 90 functions/values are documented on the help page available in live mode; you 91 can also emit it as self-contained HTML output if you use output mode `help`. 92 93 Many names/aliases should be familiar if you know JavaScript, Go, or Python: 94 just avoid package names, avoid underscores, keep all letters lowercase, and 95 chances are you'll get the right Jeff names. 96 97 98 Functions (always lowercase, no underscores) 99 100 most go math/string function names, names lowercased, imported globally 101 https://pkg.go.dev/math 102 https://pkg.go.dev/strings 103 https://pkg.go.dev/filepath 104 105 many python math/string/builtin funcs, no underscores, imported globally 106 https://docs.python.org/3/library/math.html 107 https://docs.python.org/3/library/string.html 108 109 many functions named after JavaScript funcs/methods, names lowercased 110 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference 111 112 many other custom functions File: cmd/loser/info.txt 1 loser [options...] [root-folder] 2 3 LOcal SERver is a simple webserver to access files from a local folder via 4 HTTP. Access is limited to localhost and devices on the local-area network 5 (LAN). 6 7 If this app is started with - (minus/dash) instead of a root folder, it 8 only serves the contents read from standard-input, with the MIME-type being 9 autodetected. File: cmd/playwave/info.txt 1 playwave 2 3 Plays wave-audio data from standard input. File: cmd/tap/info.txt 1 tap [options] [filename] 2 3 TAble Peek 4 5 Tabular-data peeker/summarizer whose output is HTML which is fully 6 self-contained script-free icon-free with embedded tables and graphics File: cmd/vida/info.txt 1 vida [options...] [filename] 2 3 VIew DAta is an app which turns plain-text tabular data and tree-structured 4 JSON/JSON-lines into an easy-to-read representation, by using ANSI styles, 5 and aligning columns visually when showing tables. Alternatively, vida can 6 render to HTML. 7 8 When rendering tables as HTML, all numeric columns will show cell backgrounds 9 proportional to each value relative to the min/max of its column, giving you 10 an immediate/instinctive feel for quantities as they relate to each other. 11 12 Gzip-compressed input files are automatically handled on the fly and without 13 intermediate files, while still allowing input-format autodetection: this 14 works by ignoring the `.gz` extension in the filename and looking for any 15 other extensions before it. 16 17 18 Formats 19 20 tsv input default | aliases: tab, tabs, txt 21 csv input aliases: comma, commas 22 semi input aliases: semis, semicolon, semicolons 23 pipe input aliases: pipes, vbar, vbars 24 ssv input aliases: space, spaces, fields 25 json input 26 jsonl input aliases: ndjson 27 ansi output default 28 text output aliases: plain 29 html output File: cmd/waveout/info.txt 1 waveout [options...] [formulas...] 2 3 4 This app emits wave-sound binary data using the script(s) given. Scripts 5 give you the float64-related functionality you may expect, from numeric 6 operations to several math functions. When given 1 formula, the result is 7 mono; when given 2 formulas (left and right), the result is stereo. When 8 given `stereo` as an option on its own, even 1 formula will emit stereo. 9 10 Output is always uncompressed audio: `waveout` can emit that as is, or as a 11 base64-encoded data-URI, which you can use as a `src` attribute value in an 12 HTML audio tag. Output duration is 1 second by default, but you can change 13 that too by using a recognized time format. 14 15 The first recognized time format is the familiar hh:mm:ss, where the hours 16 are optional, and where seconds can have a decimal part after it. 17 18 The second recognized time format uses 1-letter shortcuts instead of colons 19 for each time component, each of which is optional: `h` stands for hour, `m` 20 for minutes, and `s` for seconds. 21 22 23 Output Formats 24 25 encoding header samples endian more info 26 27 wav direct wave int16 little default format 28 29 wav16 direct wave int16 little alias for `wav` 30 wav32 direct wave float32 little 31 uri data-URI wave int16 little MIME type is audio/x-wav 32 33 raw direct none int16 little 34 raw16le direct none int16 little alias for `raw` 35 raw32le direct none float32 little 36 raw16be direct none int16 big 37 raw32be direct none float32 big 38 39 40 Concrete Examples 41 42 # low-tones commonly used in club music as beats 43 waveout 2s 'sin(10 * tau * exp(-20 * u)) * exp(-2 * u)' > club-beats.wav 44 45 # 1 minute and 5 seconds of static-like random noise 46 waveout 1m5s 'rand()' > random-noise.wav 47 48 # many bell-like clicks in quick succession; can be a cellphone's ringtone 49 waveout 'sin(2048 * tau * t) * exp(-50 * (t%0.1))' > ringtone.wav 50 51 # similar to the door-opening sound from a dsc powerseries home alarm 52 waveout 'sin(4096 * tau * t) * exp(-10 * (t%0.1))' > home-alarm.wav 53 54 # watch your ears: quickly increases frequency up to 2khz 55 waveout 'sin(2_000 * t * tau * t)' > frequency-sweep.wav 56 57 # 1-second 400hz test tone 58 waveout 'sin(400 * tau * t)' > test-tone-400.wav 59 60 # 2s of a 440hz test tone, also called an A440 sound 61 waveout 2s 'sin(440 * tau * t)' > a440.wav 62 63 # 1s 400hz test tone with sudden volume drop at the end, to avoid clip 64 waveout 'sin(400 * tau * t) * min(1, exp(-100*(t-0.9)))' > nice-tone.wav 65 66 # old ringtone used in north america 67 waveout '0.5*sin(350 * tau * t) + 0.5*sin(450 * tau * t)' > na-ringtone.wav 68 69 # 20 seconds of periodic pings 70 waveout 20s 'sin(800 * tau * u) * exp(-20 * u)' > pings.wav 71 72 # 2 seconds of a european-style dial-tone 73 waveout 2s '(sin(350 * tau * t) + sin(450 * tau * t)) / 2' > dial-tone.wav 74 75 # 4 seconds of a north-american-style busy-phone signal 76 waveout 4s '(u < 0.5) * (sin(480*tau * t) + sin(620*tau * t)) / 2' > na-busy.wav 77 78 # hit the 51st key on a synthetic piano-like instrument 79 waveout 'sin(tau * 440 * 2**((51 - 49)/12) * t) * exp(-10*u)' > piano-key.wav 80 81 # hit of a synthetic snare-like sound 82 waveout 'random() * exp(-10 * t)' > synth-snare.wav 83 84 # a stereotypical `laser` sound 85 waveout 'sin(100 * tau * exp(-40 * t))' > laser.wav File: self-contained/ansi2html/info.txt 1 ansi2html [options] 2 3 A simple ANSI-code to styled-HTML translator: pipe/redirect some text to it 4 and out comes completely self-contained HTML source, which you can then save 5 or show as is. File: self-contained/book/info.txt 1 book [height...] [filenames...] 2 3 4 Book shows lays out text-lines the same way pairs of pages are laid out in 5 books, letting you take advantage of wide screens. Every pair of pages ends 6 with a special dotted line to visually separate it from the next pair. 7 8 If you're using Linux or MacOS, you may find this cmd-line shortcut useful: 9 10 # Like A Book lays lines as pairs of pages, the same way books do it 11 lab() { "$(which book)" $(expr $(tput lines) - 1) ${@:-} | less -KiCRS; } File: self-contained/breakrem/info.txt 1 This app keeps reminding you to take breaks from your 2 computer with pop-ups every %d minutes: time isn't 3 counted while pop-ups are showing. 4 5 The pop-ups will keep coming regularly as long as you 6 keep pressing OK to dismiss them when they show up; 7 pressing Cancel or the ✕ on the top corner will quit 8 this app and stop the reminders. 9 10 Note: you can start this app from the command-line with 11 a number between 1 and 20 to set how many minutes to 12 wait for each break reminder. File: self-contained/chu/info.txt 1 chu [numbers w/ or w/out units...] 2 3 CHange Units converts among most commonly-used measurement units: run with 4 numbers and unit shortnames as arguments, as many as you want in any order 5 6 Names are matched case-insensitively; when no units shortnames are given, 7 all conversions will show up. 8 9 If given binary, base-16, or even explicit base-10 integers, those are all 10 shown in all three bases, along with their matching unicode symbol 11 12 binary starts with 0b (ex. 0b1010010111) 13 hexadecimal starts with 0x (ex. 0x59da2) 14 explicit decimal starts with 0d (ex. 0d278) 15 16 You can also convert time duration either using the common hh:mm:ss and 17 mm:ss format; similarly, you can also use the format XXhXXmXXs, where 18 each part is optional. 19 20 21 Units supported 22 23 length cm, m, km, in, ft, yd, mi, nmi 24 weight kg, lb, ton 25 volume L, gal, cup, mL, oz 26 temperature C, F, K 27 area m2, in2, ft2, km2, mi2, ac 28 volume m3, ft3 29 30 The following mixed-unit pairs are also supported 31 32 feet/inches (ex. 4ft7in) 33 pound/weight-ounces (ex. 35lb3oz) File: self-contained/coby/info.txt 1 coby [files/folders...] 2 3 COunt BYtes finds out some simple byte-related stats, counting 4 5 - bytes 6 - lines 7 - how many lines have trailing spaces 8 - how many lines end with a CRLF pair 9 - all-off (0) bytes 10 - all-on (255) bytes 11 - high-bytes (128+) 12 13 The output is TSV (tab-separated values) lines, where the first line has 14 all the column names. 15 16 When no filepaths are given, the standard input is used by default. All 17 folder names given expand recursively into all filenames in them. File: self-contained/dog/info.txt 1 dog [options...] [paths/URIs...] 2 3 4 Dog fetches data from the named sources given to it, whether these are 5 filenames or URIs. Single dashes stand for standard input, and can be 6 used more than once. When no names are given, stdin is read by default. 7 8 A line-mode is available via leading option `-l`, or its aliases `--l`, 9 `-lines`, and `--lines`. This mode turns all CRLF byte-pairs into single 10 LF bytes, and ensures all non-empty inputs end with a final LF byte, 11 which avoids accidentally joining lines across different inputs. 12 13 Line-mode also ignores leading UTF-8 BOMs on each input's first line. File: self-contained/ecoli/info.txt 1 ecoli [options...] [regex/color pairs...] 2 3 Expressions COloring LInes tries to match each line to the 1st applicable 4 RE2-style regular expression given and colors it with its associated color. 5 6 Each regex must precede its corresponding color/style as follows 7 ecoli regex color regex color regex color ... 8 9 Colors/styles available include, along with their 1/2-letter shortcuts 10 red r 11 green g 12 blue b 13 magenta m 14 pink p 15 orange o 16 yellow y 17 cyan c 18 gray gr 19 invert in 20 bold bo 21 italic it 22 underline un 23 strike st 24 25 The RE2 regular expression syntax is very similar to the other commonly-used 26 alternatives, and is described at https://github.com/google/re2/wiki/Syntax File: self-contained/fob/info.txt 1 fob [options...] [root] 2 3 Files On the Browser 4 5 This is a simple webserver to browse folders the way I like: its main use-case 6 is to view folders full of pictures, showing thumbnail-previews for pics and 7 generic filetype/folder icons for all other entries. File: self-contained/frep/info.txt 1 frep [options...] regex [files...] 2 3 Flat Regular Expression Print(er) is an app similar to `grep`, except it 4 normally ignores line-feeds and/or carriage returns and follows the RE2 5 syntax, described at https://github.com/google/re2/wiki/Syntax 6 7 The exception to that is when the regular expression given starts/ends with 8 explicit line-delimiters, namely `^` and `$`: in that case the app behaves 9 like a regular `grep` clone, except for the RE2 syntax. File: self-contained/getup/info.txt 1 getup [options...] filename 2 3 This app is a webserver which lets LAN users upload files to. File: self-contained/gotron/info.txt 1 gt [options...] [formula] [file/URI...] 2 3 GoTron (gt; GO TRansform jsON) is a data-transformation tool centered on a 4 JSON-like data-model: it can load JSON data from files, URIs, or even load 5 nothing, relying purely on the formula given for the output. Its output is 6 always JSON. 7 8 All formulas are valid go-syntax expressions, with an optional Excel-like 9 leading equls sign; a trailing semicolon is also ignored, if present. 10 11 While the expressions given are run with custom semantics differing from go, 12 they mostly behave as go would: the main differences are the auto-recursive 13 (depth-first) behavior of almost all functions/operators, as well as basic 14 unary/binary operations being much more capable than their go counterparts. File: self-contained/hat/info.txt 1 hat [options...] [tool] ... 2 3 4 This is one of my `HAndy Tools` (hat) apps. It bundles a wide range of 5 single-purpose tools, most of which transform lines of UTF-8 text. The 6 idea is to expose these using intuitive names/aliases, so you don't have 7 to think too much when you want something done on the command-line. 8 9 Its 100+ tools include 10 11 - all sorts of single-purpose UTF-8 text-processors and text adapters 12 - JSON (re)formatters, selectors, converters, and adapters 13 - web servers, HTTP/HTTPS handlers, and other online-data fetchers 14 - converters to self-contained HTML from CSV/TSV/JSON, or plain-text docs 15 - table-format converters, from/to CSV/TSV 16 - file/folder/URI filters and openers File: self-contained/hex/info.txt 1 hex [options...] [filenames...] 2 3 A simple hexadecimal viewer for easy byte-level inspection of files/data. 4 5 Each line shows the starting offset for the bytes shown, 20 of the bytes 6 themselves in base-16 notation, and any ASCII codes when the byte values 7 are in the typical ASCII range. 8 9 The base-16 codes are color-coded, with most bytes shown in gray, while 10 all-1 and all-0 bytes are shown in orange and blue respectively. 11 12 All-0 bytes are the commonest kind in most binary file types and, along 13 with all-1 bytes are also a special case worth noticing when exploring 14 binary data, so it makes sense for them to stand out right away. File: self-contained/j0/info.txt 1 j0 [filepath...] 2 3 Json-0 converts/fixes JSON/pseudo-JSON input into minimal JSON output. 4 5 Besides minimizing bytes, this tool also adapts almost-JSON input into 6 valid JSON, since it ignores comments and trailing commas, neither of 7 which are supported in JSON, but which are still commonly used. 8 9 Output is always a single line, which ends with a line-feed. File: self-contained/j2/info.txt 1 j2 [filepath...] 2 3 Json-2 indents valid JSON input into multi-line JSON which uses 2 spaces for 4 each indentation level. File: self-contained/netpro/info.txt 1 netpro 2 3 NETwork PROtocols is a collection of various networking-related tools. File: self-contained/nj/info.txt 1 nj [filepath...] 2 3 Nice Json reads JSON, and emits it back as ANSI-styled indented lines, using 4 2 spaces for each indentation level. File: self-contained/nn/info.txt 1 nn [options...] [filenames...] 2 3 Nice Numbers is an app which renders the UTF-8 text it's given to make long 4 numbers much easier to read. It does so by alternating 3-digit groups which 5 are colored using ANSI-codes with plain/unstyled 3-digit groups. 6 7 Unlike the common practice of inserting commas between 3-digit groups, this 8 trick doesn't widen the original text, keeping alignments across lines the 9 same. 10 11 When not given filenames, it just reads from stdin; when given filenames, 12 a dash means use stdin, along with the other files. 13 14 Input is assumed to be UTF-8, and all CRLF byte-pairs are turned into line 15 feeds. 16 17 All (optional) leading options start with either single or double-dash, 18 and most of them change the style/color used. Some of the options are, 19 shown in their single-dash form: 20 21 -h show this help message 22 -help show this help message 23 24 -b use a blue color 25 -blue use a blue color 26 -bold bold-style digits 27 -g use a green color 28 -gray use a gray color (default) 29 -green use a green color 30 -hi use a highlighting/inverse style 31 -m use a magenta color 32 -magenta use a magenta color 33 -o use an orange color 34 -orange use an orange color 35 -r use a red color 36 -red use a red color 37 -u underline digits 38 -underline underline digits File: self-contained/nt/info.txt 1 nt [filepaths...] 2 3 Nice Tables realign/styles columns from TSV (tab-separated values) tables. File: self-contained/open/info.txt 1 open [files/folders/URIs/ports...] 2 3 Open does what it says, trying to `open` all arguments given: all ports 4 and/or URIs are opened with the default web-browser. File: self-contained/plain/info.txt 1 plain [filepaths...] 2 3 Ignore all ANSI-style sequences from data. File: self-contained/podfeed/info.txt 1 podfeed [URIs/filenames...] 2 3 Keep track of what's on multiple podcasts/RSS feeds with auto-popup links and 4 collapsible descriptions. 5 6 After fetching all RSS feeds, this program emits script-free HTML code for a 7 standalone webpage with links to all feed items, each having expandable 8 descriptions. 9 10 The cmd-line arguments can be a mix of direct URIs to podcast/RSS feeds and 11 filenames: in any files given, each line is taken as a URI to check, unless 12 the line is empty or starts with #, which marks it as a comment line. File: self-contained/pscan/info.txt 1 pscan [options...] [hostname/ports...] 2 3 A TCP port scanner showing all open ports. Output is lines of tab-separated 4 values (TSV), and starts with a header line, which has all column names. File: self-contained/sbs/info.txt 1 sbs [columns...] [filenames...] 2 3 4 Show lines Side By Side: this app is made for content which normally scrolls 5 a long way downward. You can either just pipe text into it, or give multiple 6 filenames to read lines from those: a common use-case is to pipe its results 7 to `less -KiCRS` or some other viewer command. 8 9 When given no filenames, this app reads from stdin; when giving it filenames, 10 you can use a dash to use stdin along with the files. File: self-contained/si/info.txt 1 si [filenames/URIs...] 2 3 This app (Show It) shows data using your default web browser by auto-opening 4 tabs. When reading from stdin, the content-type is auto-detected: data are 5 then sent right away to the browser via localhost, using a random port among 6 the available ones. 7 8 The localhost connection is available only until all data are transferred: 9 this means refreshing your browser tab will lose your content, replacing it 10 with a server-not-found message page. 11 12 When given filenames and/or URIs, the browser tabs will point their paths, so 13 accidentally reloading them doesn't make them disappear, unless those files 14 are actually deleted between reloads. 15 16 Dozens of common data-formats are recognized when piped from stdin, such as 17 - HTML (web pages) 18 - PDF 19 - pictures (PNG, JPEG, SVG, WEBP, GIF) 20 - audio (AAC, MP3, FLAC, WAV, AU, MIDI) 21 - video (MP4, MOV, WEBM, MKV, AVI) 22 - JSON 23 - generic UTF-8 plain-text 24 25 Base64-encoded data URIs are auto-detected and decoded appropriately. File: self-contained/teletype/info.txt 1 teletype [filepaths...] 2 3 4 Simulate the cadence of old-fashioned teletype machines, by slowing down 5 the output of UTF-8 symbols from standard input. File: self-contained/timer/info.txt 1 timer 2 3 4 Run a live timer/chronograph on stderr, always showing below all lines 5 from stdin, which update stdout as they come. 6 7 When stdin is over, it simply quits showing how long it ran, by extending 8 its last visible timer line on stderr. 9 10 You can also use this app without piping anything to its stdin, acting as 11 a simple live clock until you force-quit it. File: self-contained/ts/info.txt 1 ts 2 3 TimeStamp lines from standard input. File: self-contained/tu/info.txt 1 tu [tool...] [arguments...] 2 3 Tiny and Useful tools is a collection of various command-line tools: most of 4 these are line-oriented text-processors, but others even work with non-text 5 bytes in general. 6 7 Tool names have various aliases, and you can use any dashes/minuses and/or 8 underscores freely in the names, since they're ignored during tool look-up; 9 the only exceptions to that are `--` and `-`, which are hard-coded aliases 10 for the `compose` tool. 11 12 Tool `lines` is one of the exceptions, and allows any number of filepaths, 13 with a single dash meaning standard-input. It even allows using single 14 dashes multiple times: in that case, standard-input is only read once and 15 kept for later (re)uses. File: self-contained/vida/info.txt 1 vida [options...] [filepath...] 2 3 VIew DAta emits/reformats table-like data or JSON as either ANSI-styled text, 4 or even self-contained HTML. Output can be embellished/enriched using various 5 options. 6 7 Some of its supported input-output format permutations are data-converters, 8 rather than data-viewers. 9 10 Supported input-output format-pairs: 11 12 base64 binary 13 bytes ansi 14 csv ansi 15 csv html 16 csv json 17 csv jsons 18 csv plain 19 csv tsv 20 json ansi 21 json html 22 json jsons 23 json plain 24 jsonl json 25 lines json 26 lines jsons 27 null html 28 plain ansi 29 plain html 30 plain json 31 tsv ansi 32 tsv csv 33 tsv html 34 tsv json 35 tsv jsons 36 tsv plain 37 38 Special formats: 39 40 bytes input-format which shows colored-hex when output is `ansi` 41 42 jsonl `JSON Lines` is plain-text lines, each of which is valid JSON 43 44 jsons `JSON Strings` is JSON where nulls, booleans, and numbers are 45 always turned into strings; it's an output-only format 46 47 lines input-format used to convert plain-text lines into JSON arrays 48 of strings; output-formats `json` and `jsons` give the same 49 output, in this case 50 51 null read nothing, or write nothing; filepaths and data are still 52 opened, read, and checked, when used as an output-format 53 54 Data-format aliases: 55 56 datauri alias for the `base64` format 57 jsonlines alias for the `jsonl` format 58 jsonstrings alias for the `jsonl` format 59 prose alias for the `plain` input-output format 60 text alias for the `plain` input-output format 61 web alias for the `html` output-format 62 webpage alias for the `html` output-format File: self-contained/vip/info.txt 1 vip [options] [filenames...] 2 3 VIew Pictures on any truecolor terminal emulator / cmd-line: you may want to 4 pipe its results to `less -RS`, unless pics are small enough to fit in your 5 current window size. 6 7 Supported input formats 8 9 - PNG (stills only) 10 - JPEG 11 - GIF (stills only) 12 - BMP 13 - TIFF 14 - WEBP 15 16 If your terminal emulator supports inline base64-encoded images, run this app 17 with option -to=direct for best results. File: self-contained/webex/info.txt 1 webex [options...] [uri/filename...] 2 3 This WEB EXtractor app lets you get all sorts of items/links out of web pages, 4 whether local, or from the net. It can also turn HTML into JSON, as an option. File: self-contained/wi/info.txt 1 wi [regex] [folders...] 2 3 Where Is is an app which finds files and folders by name, using an RE2-syntax 4 case-insensitive regular expression, searching in all the folders given after 5 it. If no search folders are given, the current one is used. 6 7 Matching folder names are always shown ending in a slash, unlike matching 8 files. Also, path separators are always forward slashes (/), even when 9 running on Windows. 10 11 The RE2 regular expression syntax is very similar to the other commonly-used 12 alternatives, and is described at https://github.com/google/re2/wiki/Syntax; 13 once more, remember that this app puts `(?i)` in front of your expression if 14 it's not already there, so that matches are case-insensitive. File: self-contained/zipit/info.txt 1 zipit [filepaths...] 2 3 Compress all files/folders given into zip-format bytes, which are sent to 4 the standard output.