neulab/tldr huggingface dataset:
enqueue (default key: e) Add the podcast download URL of the current article (if any is found) to the podcast download queue (see the respective section in the documentation for more information on podcast support).
edit-urls (default key: E) Edit the list of subscribed URLs. Newsboat will start the editor configured through the VISUAL environment variable (if unset, EDITOR is used; fallback: vi). When editing is finished, Newsboat will reload the URLs file.
reload-urls (default key: ^R) Reload the URLs configuration file.
redraw (default key: ^L) Redraw the screen.
cmdline (default key: :) Open the command line.
set-filter (default key: F) Set a filter.
select-filter (default key: f) Select a predefined filter.
clear-filter (default key: ^F) Clear currently set filter.
bookmark (default key: ^B) Bookmark currently selected article or URL.
edit-flags (default key: ^E) Edit the flags of the currently selected article.
next-unread-feed (default key: ^N) Go to the next feed with unread articles. This only works from the article list.
prev-unread-feed (default key: ^P) Go to the previous feed with unread articles. This only works from the article list.
next-feed (default key: j) Go to the next feed. This only works from the article list.
prev-feed (default key: k) Go to the previous feed. This only works from the article list.
delete-article (default key: D) Delete the currently selected article.
delete-all-articles (default key: ^D) Delete all articles in the articlelist. Note that the articlelist might contain a subset of feed’s articles (because of filters or show-read-articles no), or it might contain a mix of articles from different feeds (if you’re viewing a query feed) — in either case, delete-all-articles affects just those articles, not all articles of the respective feed(s).
purge-deleted (default key: $) Purge all articles that are marked as deleted from the article list.
view-dialogs (default key: v) View list of open dialogs.
close-dialog (default key: ^X) Close currently selected dialog.
next-dialog (default key: ^V) Go to next dialog.
prev-dialog (default key: ^G) Go to previous dialog.
pipe-to (default key: _| _) Pipe article to command. The text will be word-wrapped according to the text-width setting.
sort (default key: g) Sort feeds/articles by interactively choosing the sort method.
rev-sort (default key: G) Sort feeds/articles by interactively choosing the sort method (reversed).
up (default key: UP) Go up one item in the list.
down (default key: DOWN) Go down one item in the list.
pageup (default key: PPAGE) Go up one page in the list.
pagedown (default key: NPAGE) Go down one page in the list.
home (default key: HOME) Go to the first item in the list.
end (default key: END) Go to the last item in the list.
macro-prefix (default key: ,) Initiate macro execution. The next key press selects the actual macro and runs it.
switch-focus (default key: TAB) Switch focus between widgets. This is currently only applicable to the filebrowser and dirbrowser contexts.
goto-title (default key: __) Go to item whose title contains the specified string (case-insensitive).
Newsboat comes with the possibility to categorize or "tag", as we call it, RSS feeds. Every RSS feed can be assigned 0 or more tags. Within Newsboat, you can then select to only show RSS feeds that match a certain tag. That makes it easy to categorize your feeds in a flexible and powerful way.
Usually, the urls file contains one RSS feed URL per line. To assign a tag to an RSS feed, simply attach it as a single word, separated by blanks such as space or tab. If the tag needs to contain spaces, you must use quotes (") around the tag (see example below). An example urls file may look like this:
https://blog.fefe.de/rss.xml?html interesting conspiracy news "cool stuff" https://rss.orf.at/news.xml news orf https://www.heise.de/newsticker/heise.rdf news interesting
When you now start Newsboat with this configuration, you can press "t" to select a tag. When you select the tag "news", you will see all three RSS feeds. Pressing "t" again and e.g. selecting the "conspiracy" tag, you will only see the https://blog.fefe.de/rss.xml?html RSS feed. Pressing "^T" clears the current tag, and again shows all RSS feeds, regardless of their assigned tags.
A special type of tag are tags that start with the tilde character (~). When such a tag is found, the feed title is set to the tag name (excluding the ~ character). These type of tags are ignored when any kind of "first tag" property is used. With this feature, you can give feeds any title you want in your feed list:
https://rss.orf.at/news.xml "~ORF News"
Another special type of tag are tags that start with the exclamation mark (!). When such a tag is found, the feed is hidden from the regular list of feeds and its content can only be found through a query feed.
https://rss.orf.at/news.xml "!ORF News (hidden)"
Newsboat contains support for Snownews extensions. The RSS feed readers Snownews and Liferea share a common way of extending the readers with custom scripts. Two mechanisms, namely "execurl" and "filter" type scripts, are available and supported by Newsboat.
An "execurl" script can be any program that gets executed and whose output is interpreted as RSS feed, while "filter" scripts are fed with the content of a configured URL and whose output is interpreted as RSS feed.
The configuration is simple and straight-forward. Just add to your urls file configuration lines like the following ones:
exec:~/bin/execurl-script filter:~/bin/filter-script:https://some.test/url
The first line shows how to add an execurl script to your configuration: start the line with exec: and then immediately append the path of the script that shall be executed. If this script requires additional parameters, simply use quotes (see [_using_double_quotes] for details):
"exec:~/bin/execurl-script param1 param2"
The second line shows how to add a filter script to your configuration: start the line with filter:, then immediately append the path of the script, then append a colon (:), and then append the URL of the file that shall be fed to the script. Again, if the script requires any parameters, simply quote the whole thing:
"filter:~/bin/filter-script param1 param2:https://url/foobar"
In both cases, the tagging feature as described above is still available:
exec:~/bin/execurl-script tag1 tag2 "quoted tag" filter:~/bin/filter-script:https://some.test/url tag3 tag4 tag5
If you need to write your own extension, see this <https://web.archive.org/web/20090724045314/http://kiza.kcore.de/software/snownews/snowscripts/writing> short guide"  for an introduction. A collection of existing scripts <https://github.com/msharov/snownews/tree/de3bd8b28191c4d4bc1be18275786613bcbc0c94/docs/untested> and filters <https://github.com/msharov/snownews/tree/9fb45e4cdf1cf9dea55b9af66c13a4c238809851/docs/filters> might help, too.
Newsboat comes with an example exec script which shows one way to generate an RSS channel. It also includes a way to see which exact arguments are passed to the script by Newsboat. This example can be found in the doc/examples subdirectory.
Like other text-oriented software, Newsboat contains an internal commandline to modify configuration variables ad hoc and to run own commands. It provides a flexible access to the functionality of Newsboat which is especially useful for advanced users.
To start the commandline, type ":". You will see a ":" prompt at the bottom of the screen, similar to tools like vi(m) or mutt. You can now enter commands. Pressing the "Enter" key executes the command (possibly giving feedback to the user) and closes the commandline. You can cancel entering commands by pressing the "Esc" key. The history of all the commands that you enter will be saved to the history.cmdline file, stored next to the cache.db file. The backlog is limited to 100 entries by default, but can be influenced by setting the history-limit configuration variable. To disable history saving, set the history-limit to 0.
The commandline provides you with some help if you can’t remember the full names of commandline commands. By pressing the "Tab" key, Newsboat will try to automatically complete your command. If there is more than one possible completion, you can subsequently press the "Tab" key to cycle through all results. If no match is found, no suggestion will be inserted into the commandline. For the set command, the completion also works for configuration variable names.
In addition, some common key combination such as "Ctrl-G" (to cancel input), "Ctrl-K" (to delete text from the cursor position to the end of line), "Ctrl-U" (to clear the whole line) and "Ctrl-W" (to delete the word before the current cursor position) were added.
Please be aware that the input history of both the command line and the search functions are saved to the filesystems, to the files history.cmdline resp. history.search (stored next to the cache.db file). By default, the last 100 entries are saved, but this can be configured (configuration variable history-limit) and also totally disabled (by setting said variable to 0).
Currently, the following command line commands are available:
quit Quit Newsboat
q Alias for quit
save <filename> Save current article to <filename>
set <variable>[=<value>|&|!] Set (or get) configuration variable value. Specifying a ! after the name of a boolean configuration variable toggles their values, a & directly after the name of a configuration variable of any type resets its value to the documented default value.
tag <tagname> Select a certain tag
goto <case-insensitive substring> Go to the next feed whose name contains the case-insensitive substring.
source <filename> [...] Load the specified configuration files. This allows it to load alternative configuration files or reload already loaded configuration files on-the-fly from the filesystem.
dumpconfig <filename> Save current internal state of configuration to file, so that it can be instantly reused as configuration file.
<number> Jump to the <number>th entry in the current dialog
By default, Newsboat stores all the files in a traditional Unix fashion, i.e. in a "dotdir" located at ~/.newsboat. However, it also supports a modern way, XDG Base Directory Specification <https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html>, which splits the files between the following locations:
1. $XDG_CONFIG_HOME/newsboat/ (XDG_CONFIG_HOME defaults to ~/.config)
2. $XDG_DATA_HOME/newsboat/ (XDG_DATA_HOME defaults to ~/.local/share)
If the newsboat directory exists under XDG_CONFIG_HOME, then Newsboat will use XDG directories (creating the data directory if necessary). Otherwise, Newsboat will default to ~/.newsboat.
If you’re currently using ~/.newsboat/ but wish to migrate to XDG directories, you should move the files as follows:
config, urls to $XDG_CONFIG_HOME/newsboat/
cache.db, history.search, history.cmdline, queue to $XDG_DATA_HOME/newsboat/
Newsboat and Podboat also create "lock files". These prevent you from starting two instances of the same program, and thus from corrupting your data. Newsboat and Podboat remove these files when you quit the program, so there is no need to copy them anywhere — just be aware of them in case you write scripts that work with cache.db or queue. By default, lock files are located as follows:
┌─────────┬───────────────────────────┬───────────────────────────────────────┐ │         │                           │                                       │ │         │ dotdir                    │ XDG                                   │ ├─────────┼───────────────────────────┼───────────────────────────────────────┤ │         │                           │                                       │ │Newsboat │ ~/.newsboat/cache.db.lock │ $XDG_DATA_HOME/newsboat/cache.db.lock │ ├─────────┼───────────────────────────┼───────────────────────────────────────┤ │         │                           │                                       │ │Podboat  │ ~/.newsboat/pb-lock.pid   │ $XDG_DATA_HOME/newsboat/.lock         │ └─────────┴───────────────────────────┴───────────────────────────────────────┘
Newsboat places the lock file next to the cache file, so if you specify cache-file setting or pass --cache-file command-line argument, the path to the lock file will change too. Podboat, on the other hand, always places its lock file as shown above.
dotfiles ~/.newsboat/config
~/.newsboat/urls
XDG $XDG_CONFIG_HOME/newsboat/config
$XDG_CONFIG_HOME/newsboat/urls
Note: if the XDG_CONFIG_HOME environment variable is not set, Newsboat behaves as if it was set to ~/.config.
BROWSER Tells Newsboat what browser to use if there is no browser setting in the config file. If this variable doesn’t exist, a default of lynx(1) will be used.
CURL_CA_BUNDLE Tells Newsboat to use the specified certificate file to verify the peer. The file may contain multiple certificates. The certificate(s) must be in PEM format.
This option is useful if your libcurl is built without useful certificate information, and you can’t rebuild the library yourself.
EDITOR Tells Newsboat what fallback editor to use when editing the urls file via the edit-urls operation and no VISUAL environment variable is set. If this variable doesn’t exist either, a default of vi(1) will be used.
PAGER Tells Newsboat what pager to use if the pager setting in the config file is explicitly set to an empty string.
TMPDIR Tells Newsboat to use the specified directory for storing temporary files. If this variable doesn’t exist, a default of /tmp will be used.
VISUAL Tells Newsboat what editor to use when editing the urls file via the edit-urls operation. If this variable doesn’t exist, the EDITOR environment variable will be used.
XDG_CONFIG_HOME Tells Newsboat which base directory to use for the configuration files. See also the section on files for more information.
XDG_DATA_HOME Tells Newsboat which base directory to use for the data files. See also the section on files for more information.
podboat(1)
Alexander Batischev
GIT-DELETE-TAG(1)                  Git Extras                  GIT-DELETE-TAG(1)
git-delete-tag - Delete tags
git-delete-tag <tagname>
Deletes local and remote tag named <tagname>.
The name of the tag to delete. If multiple tags are provided, then they will all be deleted.
$ git delete-tag 0.0.1 $ git delete-tag 0.0.1 0.0.2
CAL(1)                     BSD General Commands Manual                    CAL(1)
cal, ncal — displays a calendar and the date of Easter
cal [-3hjy] [-A number] [-B number] [[month] year] cal [-3hj] [-A number] [-B number] -m month [year] ncal [-3bhjJpwySM] [-A number] [-B number] [-W number] [-s country_code] [[month] year] ncal [-Jeo] [-A number] [-B number] [year] ncal [-CN] [-H yyyy-mm-dd] [-d yyyy-mm]
The cal utility displays a simple calendar in traditional format and ncal offers an alternative layout, more options and the date of Easter.  The new format is a little cramped but it makes a year fit on a 25x80 terminal.  If arguments are not specified, the current month is displayed.
-h      Turns off highlighting of today.
-J      Display Julian Calendar, if combined with the -o option, display date of Orthodox Easter according to the Julian Calendar.
-e      Display date of Easter (for western churches).
-j      Display Julian days (days one-based, numbered from January 1).
-m month Display the specified month.  If month is specified as a decimal number, appending ‘f’ or ‘p’ displays the same month of the following or previous year respectively.
-o      Display date of Orthodox Easter (Greek and Russian Orthodox Churches).
-p      Print the country codes and switching days from Julian to Gregorian Calendar as they are assumed by ncal.  The country code as determined from the local environment is marked with an asterisk.
-s country_code Assume the switch from Julian to Gregorian Calendar at the date associated with the country_code.  If not specified, ncal tries to guess the switch date from the local environment or falls back to September 2, 1752.  This was when Great Britain and her colonies switched to the Gregorian Calendar.
-w      Print the number of the week below each week column.
-y      Display a calendar for the specified year. This option is implied when a year but no month are specified on the command line.
-3      Display the previous, current and next month surrounding today.
-1      Display only the current month. This is the default.
-A number Months to add after. The specified number of months is added to the end of the display. This is in addition to any date range selected by the -y, -3, or -1 options. For example, “cal -y -B2 -A2” shows everything from November of the previous year to February of the following year. Negative numbers are allowed, in which case the specified number of months is subtracted. For example, “cal -y -B-6” shows July to December. And “cal -A11” simply shows the next 12 months.
-B number Months to add before. The specified number of months is added to the beginning of the display. See -A for examples.
-C      Completely switch to cal mode. For cal like output only, use -b instead.
-d yyyy-mm Use yyyy-mm as the current date (for debugging of date selection).
-H yyyy-mm-dd Use yyyy-mm-dd as the current date (for debugging of highlighting).
-M      Weeks start on Monday.
-S      Weeks start on Sunday.
-W number First week of the year has at least number days.
-b      Use oldstyle format for ncal output.
A single parameter specifies the year (1–9999) to be displayed; note the year must be fully specified: “cal 89” will not display a calendar for 1989.  Two parameters denote the month and year; the month is either a number between 1 and 12, or a full or abbreviated name as specified by the current locale.  Month and year default to those of the current system clock and time zone (so “cal -m 8” will display a calendar for the month of August in the current year).
Not all options can be used together.  For example the options -y, -3, and -1 are mutually exclusive. If inconsistent options are given, the later ones take precedence over the earlier ones.
A year starts on January 1.
Highlighting of dates is disabled if stdout is not a tty.
calendar(3), strftime(3)
The cal utility is compliant with the X/Open System Interfaces option of the IEEE Std 1003.1-2008 (“POSIX.1”) specification.
The flags [-3hyJeopw], as well as the ability to specify a month name as a single argument, are extensions to that specification.
The week number computed by -w is compliant with the ISO 8601 specification.
A cal command appeared in Version 1 AT&T UNIX.  The ncal command appeared in FreeBSD 2.2.6.  The output of the cal command is supposed to be bit for bit compatible to the original Unix cal command, because its output is processed by other programs like CGI scripts, that should not be broken. Therefore it will always output 8 lines, even if only 7 contain data. This extra blank line also appears with the original cal command, at least on Solaris 8
The ncal command and manual were written by Wolfgang Helbig <helbig@FreeBSD.org>.
The assignment of Julian–Gregorian switching dates to country codes is historically naive for many countries.
Not all options are compatible and using them in different orders will give varying results.
It is not possible to display Monday as the first day of the week with cal.
The default C language standard is gnu17, except on PS4, where it is gnu99.
-ffreestanding Indicate that the file should be compiled for a freestanding, not a hosted, environment. Note that it is assumed that a freestanding environment will additionally provide memcpy, memmove, memset and memcmp implementations, as these are needed for efficient codegen for many programs.
-mcpu=?, -mtune=? Acts as an alias for --print-supported-cpus.
-O Equivalent to -O1.
-feliminate-unused-debug-types By default, Clang does not emit type information for types that are defined but not used in a program. To retain the debug info for these unused types, the negation -fno-eliminate-unused-debug-types can be used.
NOTE: On Darwin, when using -flto along with -g and compiling and linking in separate steps, you also need to pass -Wl,-object_path_lto,<lto-filename>.o at the linking step to instruct the ld64 linker not to delete the temporary object file generated during Link Time Optimization (this flag is automatically passed to the linker by Clang if compilation and linking are done in a single step). This allows debugging the executable as well as generating the .dSYM bundle using dsymutil(1).
2007-2021, The Clang Team
MOCHA(1)                     General Commands Manual                    MOCHA(1)
mocha - simple, flexible, fun test framework
Usage: mocha [debug] [options] [files]
Mocha is a feature-rich JavaScript test framework running on Node.js and browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases.
init <path> initialize a client-side mocha setup at <path>
-h, --help output usage information
-V, --version output the version number
-r, --require <name> require the given module
-R, --reporter <name> specify the reporter to use
-u, --ui <name> specify user-interface (bdd|tdd|exports)
-g, --grep <pattern> only run tests matching <pattern>
-i, --invert inverts --grep matches
-t, --timeout <ms> set test-case timeout in milliseconds [2000]
-s, --slow <ms> "slow" test threshold in milliseconds [75]
-w, --watch watch files for changes
-c, --colors force enabling of colors
-C, --no-colors force disabling of colors
-G, --growl enable growl notification support
-d, --debug enable node's debugger, synonym for node --debug
-b, --bail bail after first test failure
-A, --async-only force all tests to take a callback (async)
-S, --sort sort test files
--recursive include sub directories
--debug-brk enable node's debugger breaking on the first line
--globals <names> allow the given comma-delimited global [names]
--check-leaks check for global variable leaks
--interfaces display available interfaces
--reporters display available reporters
--compilers <ext>:<module>,... use the given module(s) to compile files
--inline-diffs display actual/expected differences inline within each string
--no-exit require a clean shutdown of the event loop: mocha will not call process.exit
More info about mocha can be found in /usr/share/doc/mocha/Readme.md.gz
This man page was created by Leo Iannacone <l3on@ubuntu.com>
License   GPLv3+:   GNU  GPL  version  3  or  later <http://gnu.org/licenses/gpl.html>.
ARDUINO-BUILDER(1)           General Commands Manual          ARDUINO-BUILDER(1)
arduino-builder - compiles Arduino sketches
arduino-builder mandatory-arguments [options] sketch
A command line tool for compiling Arduino sketches
This tool is able to parse Arduino Hardware specifications, properly run gcc and produce compiled sketches.
An Arduino sketch differs from a standard C program in that it misses a main (provided by the Arduino core), function prototypes are not mandatory, and libraries inclusion is automagic (you just have to #include them). This tool generates function prototypes and gathers library paths, providing gcc with all the needed -I params.
Every time you run this tool, it will create a 'build.options.json' file in build path. It's used to understand if build options (such as hardware folders, fqbn and so on) were changed when compiling the same sketch. If they changed, the whole build path is wiped out. If they didn't change, previous compiled files will be reused if the corresponding source files didn't change as well. You can save this file locally and use it instead of specifying -hardware, -tools, -libraries, -fqbn, -pref and -ide-version.
Mandatory -hardware folder folder containing Arduino platforms. An example is the 'hardware' folder shipped with the Arduino IDE, or the packages folder created by Arduino Boards Manager. Can be specified multiple times. If conflicting hardware definitions are specified, the last one wins.
-tools folder folder containing Arduino tools (gcc, avrdude...). An example is the 'hardware/tools' folder shipped with the Arduino IDE, or the packages folder created by Arduino Boards Manager. Can be specified multiple times.
-fqbn name Fully Qualified Board Name, e.g.: arduino:avr:uno.
Optional -compile | -dump-prefs | -preprocess If omitted, defaults to -compile. dump-prefs will just print all build preferences used, -compile will use those preferences to run the actual compiler, -preprocess will only print preprocessed code to stdout.
-libraries folder folder containing Arduino libraries. An example is the 'libraries' folder shipped with the Arduino IDE. Can be specified multiple times.
-build-path folder folder where to save compiled files. If omitted, a folder will be created in the temporary folder specified by your OS.
-prefs=key=value It allows you to override some build properties.
-warnings Can be "none", "default", "more" and "all". Defaults to "none". Used to tell gcc which warning level to use (-W flag).
-verbose Turns on verbose mode.
-quiet Suppresses almost every output.
-debug-level Ddefaults to "5". Used for debugging. Set it to 10 when submitting an issue.
-core-api-version Defaults to "10600". The version of the Arduino IDE which is using this tool.
-logger Can be "human", "humantags" or "machine". Defaults to "human". If "humantags" the messages are qualified with a prefix that indicates their level (info, debug, error). If "machine", messages emitted will be in a format which the Arduino IDE understands and that it uses for I18N.
-version If specified, prints version and exits.
-build-options-file path path to a local build.options.json file, which allows you to omit specifying params such as -hardware, -tools, -libraries, -fqbn, -pref and -ide-version.
-vid-pid When specified, VID/PID specific build properties are used, if boards supports them.
arduino(1)
XDG-OPEN(1)                      xdg-open Manual                     XDG-OPEN(1)
xdg-open - opens a file or URL in the user's preferred application
xdg-open {file | URL}
xdg-open {--help | --manual | --version}
xdg-open opens a file or URL in the user's preferred application. If a URL is provided the URL will be opened in the user's preferred web browser. If a file is provided the file will be opened in the preferred application for files of that type. xdg-open supports file, ftp, http and https URLs.
xdg-open is for use inside a desktop session only. It is not recommended to use xdg-open as root.
--help Show command synopsis.
--manual Show this manual page.
--version Show the xdg-utils version information.
An exit code of 0 indicates success while a non-zero exit code indicates failure. The following failure codes can be returned:
1 Error in command line syntax.
2 One of the files passed on the command line did not exist.
3 A required tool could not be found.
4 The action failed.
xdg-mime(1), xdg-settings(1), MIME applications associations specification[1]
xdg-open 'http://www.freedesktop.org/'
Opens the freedesktop.org website in the user's default browser.
xdg-open /tmp/foobar.png
Opens the PNG image file /tmp/foobar.png in the user's default image viewing application.
Kevin Krammer Author.
Jeremy White Author.
Copyright Â© 2006
1. MIME applications associations specification http://www.freedesktop.org/wiki/Specifications/mime-apps-spec/
GIFSICLE(1)                  General Commands Manual                 GIFSICLE(1)
gifsicle - manipulates GIF images and animations
gifsicle [options, frames, and filenames]...
gifsicle is a powerful command-line program for creating, editing, manipulating, and getting information about GIF images and animations.
Gifsicle normally processes input GIF files according to its command line options and writes the result to the standard output. The -i option, for example, tells gifsicle to interlace its inputs:
gifsicle -i < pic.gif > interlaced-pic.gif
Gifsicle is good at creating and manipulating GIF animations. By default, it combines two or more input files into a “flipbook” animation:
gifsicle pic1.gif pic2.gif pic3.gif > animation.gif
Use options like --delay, --loopcount, and --optimize to tune your animations.
To modify GIF files in place, use the --batch option. With --batch, gifsicle will modify the files you specify instead of writing a new file to the standard output. To interlace all the GIFs in the current directory, you could say:
gifsicle --batch -i *.gif
New users may want to skip to the Examples section at the end.
Concepts are on the left, relevant gifsicle options are on the right.
Animations, changing     frame selections, frame changes, etc. disposal              --disposal looping               --loopcount portions of           frame selections smaller               --optimize, --colors, --lossy speed                 --delay Bad output               --careful Background color         --background Colors, changing         --change-color, --use-colormap, --dither, --transform-colormap reducing number       --colors, --dither, --gamma Comments                 --comment Extensions               --extension, --app-extension, --extension-info File size                --optimize, --unoptimize, --colors, --lossy Image transformations cropping              --crop, --crop-transparency flipping              --flip-* resizing              --resize, --scale rotating              --rotate-* Grayscale                --use-colormap Interlacing              --interlace Positioning frames       --position Screen, logical          --logical-screen Selecting frames         frame selections (like '#0') Transparency             --transparent Warnings                 --no-warnings
gifsicle's command line consists of GIF input files and options. Most options start with a dash (-) or plus (+); frame selections, a kind of option, start with a number sign (#). Anything else is a GIF input file.
gifsicle reads and processes GIF input files in order. If no GIF input file is given, or you give the special filename ‘-’, it reads from the standard input.
gifsicle exits with status 0 if there were no errors and status 1 otherwise.
Every option has a long form, ‘--long-descriptive-name’.  You don't need to type the whole long descriptive name, just enough to make it unambiguous.
Some options also have a short form, ‘-X’.  You can combine short options if they don't take arguments: ‘-IIb’ is the same as ‘-I -I -b’.  But be careful with options that do take arguments: ‘-cblah’ means ‘-c blah’, not ‘-c -b -l -a -h’.
Many options also have a converse, ‘--no-option’, which turns off the option. You can turn off a short option ‘-X’ by saying ‘+X’ instead.
Mode Options Mode options tell gifsicle what kind of output to generate. There can be at most one, and it must precede any GIF inputs.
--merge, -m Combine all GIF inputs into one file with multiple frames and write that file to the standard output. This is the default mode.
--batch, -b Modify each GIF input in place by reading and writing to the same filename.  (GIFs read from the standard input are written to the standard output.)
--explode, -e Create an output GIF for each frame of each input file. The output GIFs are named ‘xxx.000’, ‘xxx.001’, and so on, where ‘xxx’ is the name of the input file (or whatever you specified with ‘--output’) and the numeric extension is the frame number.
--explode-by-name, -E Same as --explode, but write any named frames to files ‘xxx.name’ instead of ‘xxx.frame-number’.  Frames are named using the ‘--name’ option.
General Options General options control the information gifsicle prints and where it writes its output. The info options and --verbose can be turned off with ‘--no-X’.
--info, -I Print a human-readable description of each input GIF to the standard output, or whatever file you specify with -o.  This option suppresses normal output, and cannot be combined with mode options like --batch.  If you give two --info or -I options, however, information is printed to standard error, and normal output takes place as usual.
--color-info, --cinfo Like --info, but also print information about input files' colormaps.
--extension-info, --xinfo Like --info, but also print any unrecognized GIF extensions in a hexdump(1)-like format.
--size-info, --sinfo Like --info, but also print information about compressed image sizes.
--help, -h Print usage information and exit.
-o file --output file Send output to file.  The special filename ‘-’ means the standard output.
--verbose, -V Print progress information (files read and written) to standard error.
--no-warnings, -w Suppress all warning messages.
--no-ignore-errors Exit with status 1 when encountering a very erroneous GIF. Default is to muddle on.
--version Print the version number and some short non-warranty information and exit.
--careful Write slightly larger GIFs that avoid bugs in some other GIF implementations. Some Java and Internet Explorer versions cannot display the correct, minimal GIFs that Gifsicle produces. Use the --careful option if you are having problems with a particular image.
--conserve-memory Conserve memory usage at the expense of processing time. This may be useful if you are processing large GIFs on a computer without very much memory. Or say --no-conserve-memory.
--nextfile Allow input files to contain multiple concatenated GIF images. If a filename appears multiple times on the command line, gifsicle will read a new image from the file each time. This option can help scripts avoid the need for temporary files. For example, to create an animated GIF with three frames with different delays, you might run "gifsicle --nextfile -d10 - -d20 - -d30 - > out.gif" and write the three GIF images, in sequence, to gifsicle's standard input.
--multifile Like --nextfile, but read as many GIF images as possible from each file. This option is intended for scripts. For example, to merge an unknown number of GIF images into a single animation, run "gifsicle --multifile - > out.gif" and write the GIF images, in sequence, to gifsicle's standard input.  Any frame selections apply only to the last file in the concatenation.
Frame Selections A frame selection tells gifsicle which frames to use from the current input file. They are useful only for animations, as non-animated GIFs only have one frame. Here are the acceptable forms for frame specifications.
#num         Select frame num. (The first frame is ‘#0’.  Negative numbers count backwards from the last frame, which is ‘#-1’.) #num1-num2   Select frames num1 through num2. #num1-       Select frames num1 through the last frame. #name        Select the frame named name.
The ‘#’ character has special meaning for many shells, so you generally need to quote it.
For example, gifsicle happy.gif "#0" uses the first frame from happy.gif; gifsicle happy.gif "#0-2" uses its first three frames; and gifsicle happy.gif "#-1-0" uses its frames in reverse order (starting from frame #-1 -- the last frame -- and ending at frame #0 -- the first).
The action performed with the selected frames depends on the current mode. In merge mode, only the selected frames are merged into the output GIF. In batch mode, only the selected frames are modified; other frames remain unchanged. In explode mode, only the selected frames are exploded into output GIFs.
Frame Change Options Frame change options insert new frames into an animation or replace or delete frames that already exist. Some things -- for example, changing one frame in an animation -- are difficult to express with frame selections, but easy with frame changes.
--delete frames [frames...] Delete frames from the input GIF.
--insert-before frame other-GIFs Insert other-GIFs before frame in the input GIF.
--append other-GIFs Append other-GIFs to the input GIF.
--replace frames other-GIFs Replace frames from the input GIF with other-GIFs.
--done Complete the current set of frame changes.
The frames arguments are frame selections (see above). These arguments always refer to frames from the original input GIF. So, if ‘a.gif’ has 3 frames and ‘b.gif’ has one, this command gifsicle a.gif --delete "#0" --replace "#2" b.gif will produce an output animation with 2 frames: ‘a.gif’ frame 1, then ‘b.gif’.
The other-GIFs arguments are any number of GIF input files and frame selections.  These images are combined in merge mode and added to the input GIF.  The other-GIFs last until the next frame change option, so this command replaces the first frame of ‘in.gif’ with the merge of ‘a.gif’ and ‘b.gif’: gifsicle -b in.gif --replace "#0" a.gif b.gif
This command, however, replaces the first frame of ‘in.gif’ with ‘a.gif’ and then processes ‘b.gif’ separately: gifsicle -b in.gif --replace "#0" a.gif --done b.gif
Warning: You shouldn't use both frame selections and frame changes on the same input GIF.
Image Options Image options modify input images -- by changing their interlacing, transparency, and cropping, for example. Image options have three forms: ‘--X’, ‘--no-X’, and ‘--same-X’.  The ‘--X’ form selects a value for the feature, the ‘--no-X’ form turns off the feature, and the ‘--same-X’ form means that the feature's value is copied from each input. The default is always ‘--same-X’.  For example, -background="#0000FF" sets the background color to blue, --no-background turns the background color off (by setting it to 0), and --same-background uses input images' existing background colors. You can give each option multiple times; for example, gifsicle -b -O2 -i a.gif --same-interlace b.gif c.gif will make ‘a.gif’ interlaced, but leave ‘b.gif’ and ‘c.gif’ interlaced only if they were already.
-B color --background color Set the output GIF's background to color.  The argument can have the same forms as in the --transparent option below.
--crop x1,y1-x2,y2 --crop x1,y1+widthxheight Crop the following input frames to a smaller rectangular area. The top-left corner of this rectangle is (x1,y1); you can give either the lower-right corner, (x2,y2), or the width and height of the rectangle. In the x1,y1+widthxheight form, width and height can be zero or negative. A zero dimension means the cropping area goes to the edge of the image; a negative dimension brings the cropping area that many pixels back from the image edge. For example, --crop 2,2+-2x-2 will shave 2 pixels off each side of the input image. Cropping takes place before any rotation, flipping, resizing, or positioning.
--crop-transparency Crop any transparent borders off the following input frames. This happens after any cropping due to the --crop option. It works on the raw input images; for example, any transparency options have not yet been applied.
--flip-horizontal --flip-vertical Flip the following frames horizontally or vertically.
-i --interlace Turn interlacing on.
-S widthxheight --logical-screen widthxheight Set the output logical screen to widthxheight.  --no-logical-screen sets the output logical screen to the size of the largest output frame, while --same-logical-screen sets the output logical screen to the largest input logical screen.  --screen is a synonym for --logical-screen.
-p x,y --position x,y Set the following frames' positions to (x,y).  --no-position means --position 0,0.  Normally, --position x,y places every succeeding frame exactly at x,y. However, if an entire animation is input, x,y is treated as the position for the animation.
--rotate-90 --rotate-180 --rotate-270 Rotate the following frames by 90, 180, or 270 degrees.  --no-rotate turns off any rotation.
-t color --transparent color Make color transparent in the following frames.  Color can be a colormap index (0-255), a hexadecimal color specification (like "#FF00FF" for magenta), or slash- or comma-separated red, green and blue values (each between 0 and 255).
Extension Options Extension options add non-visual information to the output GIF. This includes names, comments, and generic extensions.
--app-extension app-name extension Add an application extension named app-name and with the value extension to the output GIF.  --no-app-extensions removes application extensions from the input images.
-c text --comment text Add a comment, text, to the output GIF. The comment will be placed before the next frame in the stream.  --no-comments removes comments from the input images.
--extension number extension Add an extension numbered number and with the value extension to the output GIF.  Number can be in decimal, octal, hex, or it can be a single character like ‘n’, whose ASCII value is used. --no-extensions (or +x) removes extensions from the input images.
-n text --name text Set the next frame's name to text.  This name is stored as an extension in the output GIF (extension number 0xCE, followed by the characters of the frame name).  --no-names removes name extensions from the input images.
Animation Options Animation options apply to GIF animations, or to individual frames in GIF animations. As with image options, most animation options have three forms, ‘--X’, ‘--no-X’, and ‘--same-X’, and you can give animation options multiple times; for example, gifsicle -b a.gif -d50 "#0" "#1" -d100 "#2" "#3" sets the delays of frames 0 and 1 to 50, and frames 2 and 3 to 100.
-d time --delay time Set the delay between frames to time in hundredths of a second.
-D method --disposal method Set the disposal method for the following frames to method.  A frame's disposal method determines how a viewer should remove the frame when it's time to display the next.  Method can be a number between 0 and 7 (although only 0 through 3 are generally meaningful), or one of these names: none (leave the frame visible for future frames to build upon), asis (same as "none"), background (or bg) (replace the frame with the background), or previous (replace the frame with the area from the previous displayed frame). --no-disposal means --disposal=none.
-l[count] --loopcount[=count] Set the Netscape loop extension to count.  Count is an integer, or forever to loop endlessly. If you supply a --loopcount option without specifying count, Gifsicle will use forever.  --no-loopcount (the default) turns off looping.
Set the loop count to one less than the number of times you want the animation to run. An animation with --no-loopcount will show every frame once; --loopcount=1 will loop once, thus showing every frame twice; and so forth.  Note that --loopcount=0 is equivalent to --loopcount=forever, not --no-loopcount.
-O[level] --optimize[=level] Attempt to shrink the file sizes of GIF animations.  Level determines how much optimization is done; higher levels take longer, but may have better results. There are currently three levels:
-O1  Store only the changed portion of each image. This is the default. -O2  Store only the changed portion of each image, and use transparency. -O3  Try several optimization methods (usually slower, sometimes better results).
Other optimization flags provide finer-grained control.
-Okeep-empty Preserve empty transparent frames (they are dropped by default).
You may also be interested in other options for shrinking GIFs, such as -k, --lossy, and --no-extensions.  Note that -O does not guarantee to shrink file size, and in rare cases, even -O3 may actually enlarge file size.
-U --unoptimize Unoptimize GIF animations into an easy-to-edit form.
GIF animations are often optimized (see --optimize) to make them smaller and faster to load, which unfortunately makes them difficult to edit.  --unoptimize changes optimized input GIFs into unoptimized GIFs, where each frame is a faithful representation of what a user would see at that point in the animation.
Image Transformation Options Image transformation options apply to entire GIFs as they are read or written. They can be turned off with ‘--no-option’.
--resize widthxheight Resize the output GIF to the given width and height.  If width or height is an underscore ‘_’, that dimension is chosen so that the aspect ratio remains unchanged.  Resizing happens after all input frames have been combined and before optimization. Resizing uses logical screen dimensions; if the input stream has an unusual logical screen (many GIF displayers ignore logical screens), you may want to provide --no-logical-screen (or +S) to reset it so gifsicle uses image dimensions instead. See also --resize-method.
--resize-width width --resize-height height Resize to a given width or height, preserving aspect ratio. Equivalent to --resize widthx_ or --resize _xheight.
--resize-fit widthxheight --resize-touch widthxheight Resize the output GIF to fit within a rectangle with dimensions widthxheight.  The aspect ratio remains unchanged. The --resize-fit option only shrinks the image—no resize is performed if the GIF already fits within the rectangle. Either width or height may be an underscore ‘_’, which leaves that dimension unconstrained.
--resize-fit-width width --resize-fit-height height --resize-touch-width width --resize-touch-height height Like --resize-fit  and --resize-touch, but constrains only one dimension.
--scale Xfactor[xYfactor] Scale the output GIF's width and height by Xfactor and Yfactor.  If Yfactor is not given, it defaults to Xfactor.  Scaling happens after all input frames have been combined and before optimization.
--resize-method method Set the method used to resize images. The ‘sample’ method runs very quickly, but when shrinking images, it produces noisy results.  The ‘mix’ method is somewhat slower, but produces better-looking results. The default method is currently ‘mix’.
Details: The resize methods differ most when shrinking images. The ‘sample’ method is a point sampler: each pixel position in the output image maps to exactly one pixel position in the input. When shrinking, full rows and columns from the input are dropped. The other methods use all input pixels, which generally produces better- looking images. The ‘box’ method, a box sampler, is faster than the more complex filters and produces somewhat sharper results, but there will be anomalies when shrinking images by a small amount in one dimension.  (Some output pixels will correspond to exactly 1 input row or column, while others will correspond to exactly 2 input rows or columns.) The ‘mix’ method is a full bilinear interpolator. This is slower and produces somewhat blurrier results, but avoids anomalies.
Gifsicle also supports more complex resamplers, including Catmull- Rom cubic resampling (‘catrom’), the Mitchell-Netravali filter (‘mitchell’), a 2-lobed Lanczos filter (‘lanczos2’), and a 3-lobed Lanczos filter (‘lanczos3’).  These filters are slower still, but can give sharper, better results.
--resize-colors n Allow Gifsicle to add intermediate colors when resizing images. Normally, Gifsicle's resize algorithms use input images' color palettes without changes. When shrinking images with very few colors (e.g., pure black-and-white images), adding intermediate colors can improve the results. Example: --resize-colors 64 allows Gifsicle to add intermediate colors for images that have fewer than 64 input colors.
Color Options Color options apply to entire GIFs as they are read or written. They can be turned off with ‘--no-option’.
-k num --colors num Reduce the number of distinct colors in each output GIF to num or less.  Num must be between 2 and 256. This can be used to shrink output GIFs or eliminate any local color tables.
Normally, an adaptive group of colors is chosen from the existing color table. You can affect this process with the --color-method option or by giving your own colormap with --use-colormap.  Gifsicle may need to add an additional color (making num+1 in all) if there is transparency in the image.
--color-method method Determine how a smaller colormap is chosen.  ‘diversity’, the default, is xv(1)'s diversity algorithm, which uses a strict subset of the existing colors and generally produces good results. ‘blend-diversity’ is a modification of this: some color values are blended from groups of existing colors.  ‘median-cut’ is the median cut algorithm described by Heckbert.  --method is a synonym for --color-method.
-f --dither[=method] When --dither is on and the colormap is changed, combinations of colors are used to approximate missing colors. This looks better, but makes bigger files and can cause animation artifacts, so it is off by default.