|Keith Nasman c4d344adc1 Added parens to the urlunparse function of do_gus so it is passed a tuple||2 weeks ago|
|doc||1 year ago|
|man||3 months ago|
|.gitignore||4 years ago|
|CHANGELOG||2 weeks ago|
|CONTRIBUTORS||3 months ago|
|LICENSE||3 months ago|
|README.md||3 weeks ago|
|ansicat.py||2 weeks ago|
|debug.sh||3 months ago|
|netcache.py||4 weeks ago|
|netcache_migration.py||4 weeks ago|
|offblocklist.py||2 months ago|
|offpunk.py||2 weeks ago|
|offthemes.py||2 months ago|
|offutils.py||4 weeks ago|
|opnk.py||4 weeks ago|
|pyproject.toml||3 weeks ago|
|requirements.txt||3 months ago|
|screenshot_offpunk1.png||1 year ago|
|screenshot_offpunk2.png||1 year ago|
|ubuntu_dependencies.txt||3 months ago|
A command-line and offline-first smolnet browser/feed reader for Gemini, Gopher, Spartan and Web by Ploum.
The goal of Offpunk is to be able to synchronise your content once (a day, a week, a month) and then browse/organise it while staying disconnected.
Official project page (repository/mailing lists) : https://sr.ht/~lioploum/offpunk/
Offpunk is a fork of the original AV-98 by Solderpunk and was originally called AV-98-offline as an experimental branch.
Offpunk is a set of python files. Installation is optional, you can simply git clone the project and run "./offpunk.py" or "python3 offpunk.py" in a terminal.
You use the
go command to visit a URL, e.g.
go gemini.circumlunar.space. (gemini:// is assumed if no protocol is specified. Supported protocols are gemini, gopher, finger, http, https, mailto, spartan and file. Default protocol is configurable).
Links in pages are assigned numerical indices. Just type an index to follow that link. If page is too long to fit on your screen, the content is displayed in the less pager. Type
q to quit and go back to Offpunk prompt. Type
v to display it again. (
view full or
v full allows to see the full html page instead of the article view.
v feed try to display the linked RSS feed and
v feeds displays a list of available feeds. This only applies to html pages.
v source allows you to see the source code of a page and
v normal to go back to normal view)
add to add a page to your bookmarks and
bm to show your bookmarks (you can create multiple bookmarks lists, edit and remove them. See the
list manual with
offline to only browse cached content and
online to go back online. While offline, the
reload command will force a re-fetch during the next synchronisation.
help command to learn about additional commands. Some abreviations are available. See
When launched with the "--sync" option, offpunk will run non-interactively and fetch content from your bookmarks, lists and ressources tentatively accessed while offline. New content found in your subscriptions (see
help subscribe) will be automatically added to your tour (use
tour ls to see your current tour,
tour without argument to access the next item and
tour X where X is a link number to add the content of a link to your tour).
With "--sync", one could specify a "--cache validity" in seconds. This option will not refresh content if a cache exists and is less than the specified amount of seconds old.
For example, running
offpunk --sync --cache-validity 43200
will refresh your bookmarks if those are at least 12h old. If cache-validity is not set or set to 0, any cache is considered good and only content never cached before will be fetched.
--assume-yes will automatically accept SSL certificates with errors instead of refusing them.
Sync can be applied to only a subset of list.
offpunk --sync bookmarks tour to_fetch --cache-validity 3600
Offpunk can also be configured as a browser by other tool. If you want to use offpunk directly with a given URL, simply type:
To have offpunk fetch the URL at next sync and close immediately, run:
offpunk --fetch-later URL
Important news and releases will be announced on the offpunk-devel mailing list => https://lists.sr.ht/~lioploum/offpunk-devel
Questions can be asked on the users mailing list: => https://lists.sr.ht/~lioploum/offpunk-users
Offpunk has few "strict dependencies", i.e. it should run and work without anything else beyond the Python standard library and the "less" pager. However, it will "opportunistically import" a few other libraries if they are available to offer an improved experience or some other features such as HTTP/HTML or image support.
To avoid using unstable or too recent libraries, the rule of thumb is that a library should be packaged in Debian/Ubuntu. Keep in mind that Offpunk is mainly tested will all libraries installed. If you encounter a crash without one optional dependencies, please report it. Patches and contributions to remove dependencies or support alternatives are highly appreciated.
version in offpunk to see if you are missing some dependencies.
Mandatory or highly recommended (packagers should probably make those mandatory):
Dependencies to enable web browsing (packagers may put those in an offpunk-web meta-package but it is recommended to have it for a better offpunk experience)
Older dependencies which are only needed on older systems (where chafa < 1.10)
Nice to have (packagers should may make those optional):
goto the URL copied in the clipboard without having to paste it (both X and traditional clipboards are supported). Also needed to use the
copycommand. (apt-get install xsel)
helpto get the list of command or a specific help about a command.
subscribeand rendered as gemlogs. They can be explored with
mark(as per VF-1). Unlike AV-98, tour is saved on disk accross sessions.
redirectwhich allows to block a http domain or to redirect all request to a privacy friendly frontent (such as nitter for twitter).
netcache, a standalone CLI tool to retrieve the cached version of a network ressource.
ansicat, a standalone CLI tool to render HTML/Gemtext/image in a terminal.
opnk, a standalone CLI tool to open any kind of ressources (local or network) and display it in your terminal or, if not possible, fallback to
You can use an RC file to automatically run any sequence of valid Offpunk
commands upon start up. This can be used to make settings controlled with the
themes commands persistent. You can also put a
go command in
your RC file to visit a "homepage" automatically on startup, or to pre-prepare
tour of your favourite Gemini sites or
offline to go offline by default.
The RC file should be called
offpunkrc and goes in $XDG_CONFIG_DIR/offpunk (or .config/offpunk or .offpunk if xdg not available). In that file, simply write one command per line, just like you would type them in offpunk.
The offline content is stored in ~/.cache/offpunk/ as plain .gmi/.html files. The structure of the Gemini-space is tentatively recreated. One key element of the design is to avoid any database. The cache can thus be modified by hand, content can be removed, used or added by software other than offpunk.
The cache can be accessed/built with the
netcache tool. See
netcache -h for more informations.
There’s no feature to automatically trim the cache. But any part of the cache can safely be removed manually as there are no databases or complex synchronisation.