๐ฆโ๐ฆ Store and retrieve files on the ATmosphere
Store and retrieve files on the ATmosphere (like Bluesky or Tangled)
Written entirely in Bash Shell. No NodeJS here!
curl -sSL https://zio.sh/atfile.sh | bash
echo 'ATFILE_USERNAME="<your-atproto-username>"' > ~/.config/atfile.env # e.g. alice.bsky.social, did:plc:wshs7t2adsemcrrd4snkeqli, did:web:zio.sh
echo 'ATFILE_PASSWORD="<your-atproto-password>"' >> ~/.config/atfile.env
atfile help
curlexiftool) (optional: set ATFILE_DISABLE_NI_EXIFTOOL=1 to ignore)file (only on *BSD, macOS, or Linux)gpg) (optional: needed for upload-crypt, fetch-crypt)jqmediainfo) (optional: set ATFILE_DISABLE_NI_MEDIAINFO=1 to ignore)md5sum (optional: set ATFILE_DISABLE_NI_MD5SUM=1 to ignore)
websocat (optional: needed for stream)did:plc and did:web identitiescom.atproto.* endpoints, there should be no reason these won't workPDS_BLOB_UPLOAD_LIMIT=<bytes>There are three ways of installing ATFile. Either:
curl|bash")curl -sSL https://zio.sh/atfile.sh | bash
This will automatically fetch the latest version of ATFile and install it in an appropriate location, as well as creating a blank configuration file. Once downloaded and installed, the locations used will be output. They are as follows:
$HOME/.local/bin/atfile
sudo/root: /usr/local/bin/atfile$HOME/.config/atfile.env, or $XDG_CONFIG_HOME/atfile.env (if set)$HOME/.local/bin/atfile
sudo/root: /usr/local/bin/atfile$HOME/Library/Application Support/atfile.env/boot/system/non-packaged/bin/atfile$HOME/config/settings/atfile.envSee tags on @zio.sh/atfile, and download the required version under Artifacts โ this can be stored and run from anywhere (and is identical to the version curl|bash fetched. Consider renaming to atfile.sh (as ATFile can update itself, making a fixed version in the filename nonsensical), and mark as executable (with chmod +x atfile.sh).
Config locations are identical to those above (see Automatic ("curl|bash") above).
If you've pulled this repository, you can also use ATFile by simply calling ./atfile.sh โ it functions just as a regular compiled version of ATFile, including reading from the same config file. Debug messages are turned on by default: disable these by setting ATFILE_DEBUG=0.
Config locations are identical to those above (see Automatic ("curl|bash") above).
Using a development version against your ATProto account could potentially inadvertently damage records.
See atfile help.
To compile, run ./atfile.sh build. The built version will be available at ./bin/atfile-<version>[+git.<hash>].sh.
Various environment variables can be exported to control various aspects of the development version. These are as follows:
ATFILE_DEVEL_ENABLE_PIPING <int> (default: 0)cat ./atfile.sh | bash)ATFILE_DEVEL_ENABLE_PUBLISH <int> (default: 0)release. Several requirements must be fulfilled to succeed:
ATFILE_DEVEL_DIST_USERNAME must be set$did in atfile.sh (see ๐๏ธ Building โ Meta). Ideally, you should not set this variable as updates in the built version will not be fetched from the correct placeATFILE_DEVEL_DIST_PASSWORD must be setOther ATFILE_DEVEL_ environment variables are visible in the codebase, but these are computed internally and cannot be set/modified.
Various build directives can be set in files to control various aspects of the development version. These are set with # atfile-devel= directive at the top of the file, using commas to separate values. These are as follows:
ignore-buildVarious meta variables can be set to be available in the final compiled build (usually found in help). These are found in atfile.sh under # Meta. These variables are as follows:
author <string>did <did>ATFILE_DEVEL_DIST_USERNAME is set (see ๐๏ธ Building โ Environment variables)repo <uri>version <string><major>.<minor>[.<patch>]. Not following this format will cause unintended issues. Git hashes (+git.abc1234) are added automatically during build when a git tag is not applied to the current commityear <int>Development takes place on Tangled (@zio.sh/atfile), with GitHub (ziodotsh/atfile) acting as a mirror. Use Tangled for your contributions, for both Issues and Pulls. As Tangled is powered by ATProto, you already have an account (unsure? Try logging in with your Bluesky handle).
When submitting Pulls, target the dev branch: main is the current stable production version, and Pulls will be rejected targeting this branch.
macos)linux-mingw) and Termux (linux-termux)ATFILE_DISABLE_UNSUPPORTED_OS_WARN=1ATFILE_FORCE_OS=<os>bsd, haiku, linux, linux-mingw, linux-musl, linux-termux, macos, serenity, and solaris.#!/usr/bin/env bash forces Bash)A set of PowerShell 7 commands packaged as a module that use the BlueSky API. You can skeet and upload images from a PowerShell prompt as well as view your feed and timeline.
PowerShell Announcements (with AtProtocol)
A collection of bots for bluesky along with some systemd services to keep them running. Might include more devop-y stuff later
Your Brand Here!
50K+ engaged viewers every month
Limited spots available!
๐ง Contact us via email๐ฆ Contact us on Bluesky