Changelog
July 4, 2026 · View on GitHub
All notable changes to Argos are documented in this file. Format follows Keep a Changelog. Versioning follows Semantic Versioning.
[2.1.1-beta] — 2026-07-04
Robustness fixes for setup.sh: the script no longer aborts (or misbehaves)
outside the happy path — missing repo directory, missing standard folders,
empty source directories, non-interactive execution. Repo hygiene: ShellCheck
CI, .idea/ untracked, internal notes removed.
Added
.github/workflows/shellcheck.yml
- New CI workflow: ShellCheck (severity warning and above) runs on
setup.sh, all launcher scripts,background.shand the test script on every push tomasterand on pull requests.
docs/SECURITY.md
- New security policy: how to report vulnerabilities, supported versions, and scope notes (third-party tools are reported upstream).
Changed
README.md
- OSINT and General Tools tables sorted alphabetically.
- Status badges added under the title: ShellCheck CI, CC BY-NC-SA 4.0 licence, Ubuntu 24.04 LTS platform.
- New mascot displayed at 2.5x size with natural aspect ratio; float cleared before the Contents heading so section dividers no longer cross it.
multimedia/images/
- The Argos mascot (
scribblenauts-argos.png) replaced with a new illustration inspired by the original "Scribblenauts Argos" icon by Miguel Ángel Aranda. Attribution updated inLicense.mdandmultimedia/images/license.txt.
Fixed
setup.sh
- Startup guard: the script now verifies that the repository exists at
~/Downloads/Argosand exits with a clear error message if not, instead of dying mid-run with a cryptic line-number error. The path is stored in a singleARGOS_SRCvariable used throughout (support files, Firefox policies.json). ~/Templatesis now created withmkdir -pbefore copying templates. On systems wherexdg-user-dirshas not populated the standard folders, the copy previously aborted the whole install.- All support-file copies (scripts, icons,
.desktopshortcuts, templates, wallpapers) are now guarded withcompgen -G: an empty source directory logs a warning and skips the step instead of aborting underset -e. The wallpaper step also checks thatbackground.shexists before running it. /etc/apt/keyringsis now created before writing the VSCodium signing key. On a clean Ubuntu 24.04 the directory is not guaranteed to exist, and its absence caused VSCodium to be silently skipped.- The final reboot prompt now runs only in an interactive session (
[ -t 0 ]). Without a TTY,readreturned immediately and the machine rebooted with no confirmation; the script now prints a notice and leaves the reboot to the user.
scripts/recon-ng.sh
- The launcher now uses its
RECONNGvariable instead of a literal relative path (the variable was defined but never used — flagged by ShellCheck SC2034).
Removed
Repository hygiene
.idea/(JetBrains IDE files, includingworkspace.xml) removed from git tracking; it was already gitignored but still committed.scripts/changes.txtandshortcuts/changes.txtremoved: internal work notes superseded by this changelog.
Repository administration (GitHub side)
- Issues re-enabled on the repository: they had been turned off, contradicting the README's "open an issue" instruction.
- GitHub Pages unpublished and the
gh-pagesbranch deleted: the site had been serving the untouched 2020 "Welcome to GitHub Pages" placeholder (created when the repo was still named OsintUbU) — a forgotten, unmonitored surface. - New annotated tag
archive/pre-rewriteon the tip of the oldpatch-1branch (commit06f08f6, 2022-09-15): preserves the original 2019-2022 history line (Ryan Foote's OSINT_VM_Setup onward, with all contributor attributions), which has no merge base with the rewrittenmaster. Thepatch-1branch can now be deleted without losing that history.
[2.1.0-beta] — 2026-07-04
Exploratores added and integrated with Firefox; GUI launchers for previously uncovered tools; Elasticsearch replaced with Shodan; script bug fixes and English-only UI messages.
Added
setup.sh
- New "Exploratores" section: clones SOsintOps/Exploratores to
~/Documents/Exploratoresviaclone_or_update. Exploratores is a static HTML/CSS/JS OSINT toolkit (curated search tools, PII redactor, multi-country IBAN analysis, embedded CyberChef) with no backend; the entry point islaunchme.html, opened directly in Firefox. shodanadded to the pipx tool list.
config/policies.json
Homepagepolicy: Firefox now opens Exploratores (file://__HOME__/Documents/Exploratores/launchme.html) as its homepage. Not locked, so the user can change it from Firefox settings.- New "Exploratores" bookmark added to the managed "Local Tools" bookmark folder, pointing to the local
launchme.html.
scripts/ and shortcuts/
exploratores.desktop: application menu shortcut that launches Exploratores in Firefox. Uses the system Firefox icon.usernames.sh: three previously uncovered pipx tools added to the menu — User Scanner (user-scanner -u/-e), Linkook (linkook), and Socialscan (socialscan). They were installed since v2.0.6 but had no launcher.phoneinfoga.sh+phoneinfoga.desktop: new launcher for PhoneInfoga (installed since v2.0.6 but previously unreachable). Starts the PhoneInfoga web UI (phoneinfoga serve) onhttp://127.0.0.1:5000and opens the browser — same pattern as SpiderFoot. Uses the freedesktopphoneicon.shodan.sh+shodan.desktop: zenity wrapper for the Shodan CLI (prompts for the API key on first use viashodan init, then runsshodan search). Replaces the deprecated Elasticsearch-Crawler. Uses the freedesktopnetwork-servericon.
Changed
setup.sh
- policies.json deployment now substitutes the
__HOME__placeholder with the real$HOMEat deploy time (sedpiped tosudo tee, replacing the previoussudo cp). Required because policies.json now contains localfile://URLs. This is the same mechanism already used for the.desktopshortcut files. - Obsidian download, Obsidian version lookup, and the VSCodium key/repo setup are now wrapped so a network failure logs a warning and continues instead of aborting the whole install under
set -euo pipefail+ theERRtrap.
scripts/
- All zenity/UI messages translated to English (previously mixed Italian/English across
usernames.sh,instagram.sh,metagoofil.sh,eyewitness.sh,ffmpeg_interact.sh,youtubedl.sh).
Fixed
scripts/domains.sh
- Removed the
-srcflag fromamass enum. The flag was removed in Amass v4 (the version installed via snap) and caused the command to error.
scripts/usernames.sh
- Blackbird: the script now opens the folder where Blackbird actually writes its reports (
~/Downloads/Programs/blackbird/results/) instead of an empty~/Documents/blackbird/.
scripts/eyewitness.sh
- Uses the EyeWitness virtualenv Python if present, falling back to the system
python3, and shows a clear error dialog on failure instead of crashing silently (Ubuntu 24.04 / PEP 668 dependency issues).
Removed
scripts/ and shortcuts/
- Elasticsearch-Crawler removed (
elasticsearch.sh,elasticsearch.desktop,elasticsearch.png). The tool was unmaintained and the script only showed a deprecation warning; replaced by Shodan (see Added).
[2.0.7-beta] — 2026-04-30
Firefox customisation replaced: zip-based profile template removed, enterprise policies.json adopted.
Added
config/policies.json
- Enterprise policies file for Firefox, based on the Speculator Project configuration. Covers privacy hardening (telemetry, tracking, fingerprinting, WebRTC, geolocation disabled), permission lockdown (camera, microphone, location, notifications blocked), sanitise-on-shutdown (cache, cookies, history, sessions cleared), 12 OSINT extensions auto-installed (uBlock Origin, CanvasBlocker, ClearURLs, Multi-Account Containers, EXIF Viewer, Wayback Machine, GPS Detect, Search by Image, Nimbus Screenshot, Resurrect Pages, Link Gopher, Mitaka), and managed OSINT bookmark folders.
Changed
setup.sh
- Firefox customisation block completely rewritten. The old approach launched Firefox to create a profile, extracted a ~50 MB zip archive (
argosfox/argos-ff-template.zip) from 2022, and copied its contents into the profile directory. The new approach deploys a singlepolicies.jsonfile to the Firefox distribution directory. No profile detection, no zip handling, no Firefox auto-launch required. - Snap Firefox: policies deployed to
/etc/firefox/policies/policies.json. - Deb Firefox: policies deployed to
/usr/lib/firefox/distribution/policies.json. - Known failure point #4 updated: "Firefox auto-launch" replaced with "Firefox policies.json" describing the new deployment paths.
Removed
setup.sh
zipdependency is no longer required by the Firefox customisation step. It remains in the apt list only if other steps still use it.- Profile detection logic removed (
FIREFOX_SNAP_DIR,FIREFOX_DEB_DIR,FF_PROFILE,find *.default*). - Firefox auto-launch block removed (the
firefox &>/dev/null &, 15-second wait, andpkillsequence). argosfox/argos-ff-template.zipreference removed from setup.sh. Theargosfox/directory is no longer used at install time.
[2.0.6-beta] — 2026-04-08
Toolset update: holehe replaced, three new OSINT tools added.
Added
setup.sh
user-scanner(pipx): 2-in-1 email and username OSINT suite, 195+ scan vectors. Replaces holehe.linkook(pipx): discovers linked social accounts and associated emails from a single username.socialscan(pipx): accurate email and username availability checks via direct registration endpoint queries.PhoneInfoga(binary): phone number intelligence gathering framework. Installed via the official upstream script to/usr/local/bin/phoneinfoga. Note: declared stable but unmaintained by the developer; binary remains functional.
Removed
setup.sh
holehe(pipx): removed. Last commit September 2024; many modules broken, frequent false positives, superseded byuser-scanner.
[2.0.5-beta] — 2026-04-08
Patch release replacing hardcoded template paths in .desktop shortcut files.
Changed
shortcuts/*.desktop
- All 12
.desktopfiles:/home/osint/replaced with__HOME__placeholder. Makes the template nature of these files explicit and removes any ambiguity about theosintusername dependency. youtube_dl.desktop: CRLF line endings converted to LF.
setup.sh
sedsubstitution in the.desktopcopy loop updated froms|/home/osint/|$HOME/|gtos|__HOME__|$HOME|gto match the new placeholder.
[2.0.4-beta] — 2026-04-04
Patch release focused on installation correctness and user experience.
Added
README.md
- VirtualBox Guest Additions listed as an explicit prerequisite. The script no longer installs them; they must be present before running
setup.sh.
Fixed
setup.sh
virtualbox-guest-utilsandvirtualbox-guest-x11removed from the apt install list. The dpkg interactive config file prompt onvirtualbox-guest-x11blocked non-interactive installation.- Package count in startup quip corrected from 31 to 29.
- Known failure points comment block reduced from 6 to 5 entries: the VirtualBox entry removed as those packages are no longer installed.
Changed
setup.sh
- Closing motto changed from Si vis pacem, para bellum to Audi, vide, tace — more fitting for an OSINT workstation.
[2.0.3-beta] — 2026-04-04
Patch release focused on installation resilience and failure transparency.
Added
setup.sh
FAILED_PACKAGESarray: tracks every apt package that fails to install during the session.install_apt()function: wraps each apt package install individually. On failure, logs a[WARN]message and appends the package name toFAILED_PACKAGES. The script continues rather than aborting.- Failed packages summary block: printed before the final reboot prompt. Lists every package that did not install, with the log file path for diagnosis.
- Known failure points comment block near the top of the script (after the banner). Documents six categories of expected failure: VirtualBox packages on bare-metal, snap/snapd in restricted environments,
torbrowser-launcherrepository issues, network-dependent steps, Firefox auto-launch in headless sessions, and EyeWitness bundled pip dependencies.
Fixed
setup.sh
python3 -m venvcalls for all four venv-based tools (theHarvester, metagoofil, recon-ng, blackbird) are now wrapped in an if/else block. A failed venv creation logs a clear warning and skips the pip install step rather than producing a cryptic error.- Replaced the
git clone || (cd && git pull)pattern with aclone_or_update()helper function that handles three cases: clean clone, existing valid repo (pull), and corrupted/partial directory (remove and re-clone). snap refreshnow runs with a 30-second timeout. In restricted VM environments where snapd cannot complete a systemd restart, the previous call would hang indefinitely. The script now continues after 30 seconds and logs a warning.- All 31 apt packages now install individually via
install_apt(). A single unavailable package no longer aborts the entire dependency block. sudo snap install --dangerous "obsidian_..."now has a|| log_warnfallback, consistent with theamassandcherrytreesnap installs.pip installcalls for theHarvester, metagoofil, recon-ng, and blackbird now each have a|| log_warnfallback. A dependency conflict in one tool's venv no longer aborts the remaining tool installations.sudo rmon the Obsidian snap file changed tosudo rm -fto avoid aborting if the file was not created (e.g. after a failed download).
[2.0.2-beta] — 2026-04-04
Patch release focused on package compatibility and script internationalisation.
Fixed
setup.sh
openshotreplaced withopenshot-qt— the former package does not exist on Ubuntu 24.04 Noble. Installation would abort at the apt install block.zipadded to the apt dependency list — it is used by the Firefox customisation step but was not explicitly installed, causing failure on minimal systems.
Changed
setup.sh
- All user-facing messages, log output, echo statements and inline comments translated to English. Script was previously a mix of Italian and English.
- Header updated:
Compatibile con→Compatible with,Aggiornato→Updated.
[2.0.1-beta] — 2026-04-01
Patch release focused on robustness, portability, and Wayland compatibility. No new tools added. All changes are backwards-compatible.
Fixed
setup.sh
- Firefox profile customisation failed silently on a clean VM where Firefox had never been opened.
setup.shnow launches Firefox automatically, waits 15 seconds for the default profile to be written, then closes it before applying the Argos template. .desktopshortcut files contained hardcoded/home/osint/paths.setup.shnow replaces them with the real$HOMEat install time usingsed. Any Linux username now works.
scripts/domains.sh
- theHarvester writes progress to stderr. The output was silently dropped before reaching the zenity progress bar. Added
2>&1before the pipe.
scripts/usernames.sh
sherlockandmaigretwere called without explicit paths. Changed to$HOME/.local/bin/sherlockand$HOME/.local/bin/maigretto ensure they are found in all launch contexts, includingTerminal=truesessions where.bashrcmay not be fully loaded.
scripts/youtubedl.sh
yt-dlpwas called without an explicit path in aTerminal=falselauncher. Changed to/usr/bin/yt-dlp.
scripts/spiderfoot.sh
pgrepwas called without an explicit path in aTerminal=falselauncher. Changed to/usr/bin/pgrep.
scripts/ffmpeg_interact.sh
ffmpegandffplaywere called without explicit paths in aTerminal=falselauncher. Both now use$FFMPEG_BINand$FFPLAY_BINvariables pointing to/usr/bin/.
All scripts in scripts/
- zenity dialogs would not appear on Wayland sessions. All 10 launcher scripts now export
GDK_BACKEND=x11whenXDG_SESSION_TYPE=wayland, routing zenity through XWayland transparently. No user action required.
Changed
setup.sh
- Installation log moved from
$HOME/argos_install_*.logto$HOME/Downloads/argos_install_*.logto keep the home directory clean.
[2.0.0-beta] — 2026-03-31
BREAKING CHANGE: Ubuntu 22.04 LTS is no longer supported. This release targets Ubuntu 24.04 LTS (Noble Numbat) and Ubuntu Budgie 24.04 LTS.
setup.sh: Complete Rewrite
Added
set -euo pipefail+trap ERR: script halts on any error and reports the exact line number- Installation log file:
~/argos_install_YYYYMMDD_HHMMSS.log(full output captured viatee) - Helper functions:
log_ok,log_warn,log_error,log_stepfor structured output - Root user check: prevents accidental execution as root
sudo add-apt-repository multiversebefore install (required forunrar)virtualbox-guest-utils,virtualbox-guest-x11: VirtualBox clipboard and fullscreen support on desktop environments (Budgie)python3-venv,pipx: Python isolation tooling for PEP 668 compliance- Dynamic Obsidian version via GitHub API (no longer hardcoded)
- Dynamic Firefox profile detection (supports both snap and .deb installs)
- VSCodium repository and installation (replaces Atom)
/etc/apt/keyrings/method for GPG keys (Google Earth, VSCodium)proxychains4+toras safer replacement for kali-anonsurfyt-dlpvia apt (replaces youtube-dl)httrack(correct package name, replaceswebhttrack)openjdk-21-jre(replaces openjdk-11-jre)
Changed
- All
sudo pip3 install→pipx install(PEP 668 / Python 3.12 compliance) - Tools with
requirements.txtuse dedicated.venvper project (theHarvester, metagoofil, recon-ng, blackbird) python-setuptools→python3-setuptools(Python 2 removed from Ubuntu 24.04)apt-key add(deprecated) →/etc/apt/keyrings/for Google Earth and VSCodiump7zip→7zip p7zip-full(package renamed in Ubuntu 24.04)- Ripgrep: removed manual
.debdownload (v11.0.2) → usesapt install ripgrep(v14.x) - Obsidian: hardcoded v0.14.6 → dynamically fetched latest release
- Maltego: hardcoded S3 URL → resolved via official download page
openjdk-11-jre→openjdk-21-jre- Firefox profile path: now detected dynamically at runtime (snap or deb)
cd argosfox/ || warn→ properif/elseblock (critical logic bug fix)- Removed all dead
sedpatches on already-updated scripts
Removed
youtube-dl(abandoned 2021) → replaced byyt-dlpInstalooter(abandoned 2020) → removedSublist3r(abandoned 2019) → removed (Amass covers same use case)Photon(abandoned 2020) → removedkali-anonsurf(incompatible with systemd-resolved on Ubuntu 24.04) → replaced by tor + proxychains4Moriarty-Project(abandoned) → removedElasticsearch-Crawler(abandoned) → removedAtom Editor(discontinued December 2022) → replaced by VSCodiumsudo pip3 install --upgrade pip(broke system pip on Ubuntu 24.04) → removed entirelyholeheviasetup.py install(removed in Python 3.12) → now viapipx- Redundant
curlduplicate install - Dead
sedblocks on already-updated scripts
scripts/: All Scripts Updated
youtubedl.sh
- Changed:
youtube-dl→yt-dlp - Changed:
nautilus→xdg-open(Budgie compatibility) - Changed: hardcoded
/home/osint/→$HOME
instagram.sh
- Removed: Instalooter option (tool abandoned)
- Fixed:
instaloaderoutput goes to stderr. Added2>&1before pipe to zenity so the progress bar works correctly. - Fixed: explicit path
$HOME/.local/bin/instaloaderand$HOME/.local/bin/toutatis. Tools are now found when launched from a desktop shortcut withTerminal=false. - Added: availability check for each tool before running
- Changed:
nautilus→xdg-open,/home/osint/→$HOME, variables properly quoted
usernames.sh
- Removed: Moriarty-Project option (tool abandoned)
- Added: Blackbird option (via venv at
~/Downloads/Programs/blackbird/.venv) - Changed: Maigret. Was a WIP placeholder; now fully functional via pipx.
- Changed: Sherlock. Now called via the
sherlockcommand (pipx); no longer run from a cloned repo. - Changed:
nautilus→xdg-open
spiderfoot.sh
- Rewritten: was a non-functional stub (git clone + pip install); now a proper launcher
- Fixed: explicit path
$HOME/.local/bin/spiderfoot. Now found correctly withTerminal=false. - Fixed:
pgrep -f "spiderfoot -l"instead ofpgrep -f "spiderfoot"(avoids false positive on script itself) - Changed: opens browser via
xdg-openinstead offirefox
domains.sh
- Removed: Sublist3r option (tool abandoned since 2019)
- Removed: Photon option (tool abandoned since 2020)
- Changed: theHarvester. Now uses a dedicated venv at
~/Downloads/Programs/theHarvester/.venv. - Changed: Amass. Updated to v4 syntax (
amass enuminstead ofamass intel+amass enum). - Changed:
firefox→xdg-open,nautilus→xdg-open,/home/osint/→$HOME
elasticsearch.sh
- Rewritten: converted to deprecation notice (tool abandoned, Elasticsearch 8.x requires auth by default)
- Added: suggests Shodan CLI as alternative
eyewitness.sh
- Fixed: correct path to
EyeWitness/Python/EyeWitness.py - Changed:
/home/osint/→$HOME,mkdir -pfor output directory
metagoofil.sh
- Fixed (CRITICAL):
docs_dir=$(run_metagoofil "$domain")was capturing metagoofil's entire stdout output along with the path, sofind "$docs_dir"received a corrupted path. Fixed by using a global variable$DOCS_DIRinstead of command substitution. - Fixed:
exiftool "$docs_dir"/*(unsafe glob) →exiftool -r "$docs_dir"(handles filenames with spaces) - Changed: uses dedicated venv at
~/Downloads/Programs/metagoofil/.venv - Changed:
/home/osint/→$HOME,mkdir -p
recon-ng.sh
- Changed: uses dedicated venv at
~/Downloads/Programs/recon-ng/.venv
ffmpeg_interact.sh
- Changed:
nautilus→xdg-open(Budgie: default file manager is Nemo, not Nautilus) - Changed:
/home/osint/→$HOME - Removed:
-strict -2flag (obsolete in modern ffmpeg)
shortcuts/: Desktop Files Updated
| File | Change |
|---|---|
youtube_dl.desktop | Name updated to "Video Downloader", comment updated |
usernames.desktop | Name updated from "Sherlock" to "Usernames OSINT" |
httrack.desktop | Exec=webhttrack → Exec=httrack |
elasticsearch.desktop | Terminal=true → Terminal=false, name updated |
spiderfoot.desktop | Terminal=true → Terminal=false, comment added |
twitter.desktop | Was pointing to non-existent twitter.sh → now xdg-open https://x.com |
multimedia/wallpapers/background.sh
- Changed: hardcoded
/home/osint/Pictures/...→$HOMEviaWALLPAPERvariable - Added:
picture-uri-darkfor GNOME Wayland dark mode - Fixed:
mkdir -pbefore writing to i3 config - Changed: unknown desktop session now prints a message instead of silently failing
New Files
| File | Description |
|---|---|
.gitignore | Excludes AI/Claude files, IDE config, install logs |
docs/CHANGELOG.md | This file |
docs/PROJECT_STATUS.md | AI handoff document: current state and open tasks |
Other
test/usernames-test.sh: rewritten to test sherlock, maigret, and blackbird (new toolchain)scripts/changes.txt: updated with 2026 changesREADME.md: BETA label added, tool table updated with maintenance status, Ubuntu 24.04 requirements updated, abandoned tools removed, log section added
[1.x] — 2022
- Added Toutatis to instagram.sh
- Renamed sherlock.sh to usernames.sh
- Icon paths moved from /documents/ to /Pictures/
- Renamed sherlock.desktop to usernames.desktop