The same idea as the Windows PowerShell launcher, now for Linux. You store bash
script sets in the admin panel under the new Linux tab (a mirror of
Scripts), and run them on any Linux device with one command — the parallel of
irm … | iex.
That opens a terminal menu built from your data/linux script sets. Browse a
set → a category → a script, then choose:
Run — as the current user.
Run as root (sudo) — for scripts that need elevation.
View — read the script before running it.
Schedule — a one-time run at a date/time (the parallel of the Windows
scheduled task), via at or, if it isn't installed, a systemd timer
(no extra packages needed).
Nicer menu: install fzf (sudo apt install fzf) and the launcher uses it
automatically — mouse (click / scroll), arrow keys, type-to-search and a live preview. Without it
you get a clean numbered menu. Works in a terminal and over SSH.
Auth: if key-gated, the launcher prompts for the access password and retries
(or export it first —
export MSP_KEY=<key> — then run the curl … | bash line). The device needs
curl and either jq or python3; at is only needed for scheduling.
Adding Linux scripts (admin)
Open the admin panel → Linux tab → + New Linux set (e.g. a client
name or general-linux).
Add folders (categories) and .sh files inside the set — exactly like the Scripts section
(import, + File, + Folder, rename, move, edit, folder icons).
Save. It's live on the next curl … | bash — no redeploy, straight from the private repo.
When you'd use it: a Linux mini-PC, server or VM where you want the same
curated, one-command script library you already have on Windows — device reports, package
updates, cleanups, network checks — without copy-pasting scripts around.
Command catalog NEWADMIN
A searchable library of handy commands and links in the admin panel's Commands tab —
for the things you retype constantly (helpdesk CMD, portal logins, download links).
Organise as folders → categories → entries; each entry has a title, tags, an
optional description and one or more command or link items.
Every item has a one-click Copy button (links also open in a new tab), so you
paste straight into a terminal or browser.
Search by title or tags to find things fast; folders/categories carry their own
icons and can be renamed, moved, duplicated and re-iconed like the rest of the tree.
Every change is admin-password confirmed and committed, same as folder edits.
When you'd use it: a shared, always-current cheat sheet — ipconfig /all,
sfc /scannow, the Microsoft 365 / Google / WatchGuard admin portals, the 64-bit Office
installer link — one click to copy instead of hunting for it.
1. Reminders NEWADMIN
A personal task list built into the admin panel, in the Reminders tab. Stored as
data/Reminders/reminders.json in the repo, so it travels with the project.
Using it
Click Reminders. The list opens on Pending — the things you still need to do.
+ New Reminder → title, optional description, due date + time, and whether it repeats.
Click any row to open it: mark complete, reopen, edit, delete, or post progress updates.
Use the filter chips (Pending / Overdue / Due today / Next 7 days / Completed / All) or the
saved views in the left panel.
Activity timeline
Each reminder keeps an append-only log. + Add update posts a timestamped note, so a
long-running job carries its own history rather than living in your head.
Repeating reminders
Set Repeats to daily, weekly or monthly. Completing one closes it and schedules the
next occurrence automatically (+1 day / +7 days / +1 month).
Use case — "Alexander Cataldo to be deactivated on the system" with a due date.
It shows as Overdue by 13 days until done, and every step you
took is recorded on the reminder itself.
Use case — a monthly repeating "Check backup reports". Tick it off and next
month's copy appears on its own.
Reminders are per-project, not per-user — this admin panel has a single login, so
there is no sharing or assignment (unlike the Tech Notebook version this was modelled on).
2. Scheduled tasks USER
The launcher's Scheduled tab shows scripts you have scheduled on this PC via
Windows Task Scheduler (the \BijayToolkit\ folder).
Scheduling a script
Open a script in the Scripts tab.
Click the calendar button.
Pick the date and time, confirm.
Saved views NEW
The left panel now offers All tasks · Ready · Running · Failed · Disabled with live
counts, so a broken schedule is obvious at a glance. Each card shows the next run, the last result,
the computer name and which account it runs as, with Reschedule and Remove.
On the Home page NEW
Home shows a Scheduled Tasks quick action reading "4 task(s), 1 failed", plus a
Scheduled row in the Information card. You can see a failure without opening the tab.
Use case — schedule a disk-cleanup script for 2 AM, then check Home the next
morning: if it reads "1 failed" you know before the user calls.
A task that has never run yet is not counted as failed — that used to be
confusing, and the counts now match what the cards say.
3. AI apps in the catalog NEWUSER
Two catalog categories with one-click winget installs, all IDs verified against the live sources:
* ChatGPT and Microsoft Copilot ship only through the Microsoft Store, so those entries
carry "source": "msstore" and the installer switches source automatically.
Every install runs winget source update first, so you always get the newest published
version rather than a stale cached manifest.
Not available: Gemini and NotebookLM have no Windows installer —
Google ships them web-only. They were deliberately left out rather than shipping an unofficial
clone under Google's name.
4. Copy to… NEWADMIN
Every file and folder row now has a Copy action next to Move / Rename / Delete. It opens
the same destination picker, but leaves the original in place.
Use case — build a standard folder + file structure once under Templates,
then copy it into Scripts, Software or Doc Storage for each new client.
Copy and move are now binary-safe. They previously read files as text,
which silently corrupted .docx, .pdf and images. Everything is transferred as base64 now.
5. Document preview & in-document search NEWADMIN
Doc Storage previews Word documents, PDFs, images and text without downloading them.
Find in document
The preview toolbar has a search box — the same one everywhere:
Type to highlight every match; the current one is amber, the rest blue.
Enter / Shift+Enter step forward and back, wrapping around.
Ctrl+F focuses it, Esc clears it. A counter shows 3 / 12.
It works on Word documents, PDFs, text and script files, and inside the rendered HTML preview.
The same bar also appears in the code editor.
Use case — open a 20-page SOP and jump straight to every mention of
"static IP" instead of scrolling.
Previews are cached, so re-opening a document you already viewed is instant, and a
spinner appears immediately instead of a blank panel.
6. HTML documents NEWADMIN
An .html file in Doc Storage renders as a real page. Toggle </> Code to read
the source (searchable), and toggle back to the rendered view.
Scripts inside the document never run — it is displayed in a sandboxed frame.
Use case — keep a formatted guide as HTML and read it in the panel, without
exporting to PDF first.
7. Move / rename picker ADMIN
The destination picker is a drill-down browser, not a flat list of every folder:
It opens in the item's current parent, so a nearby target is one click away.
A breadcrumb with a back button lets you move up; each segment is clickable.
The search box jumps across all folders; clearing it returns to browsing.
A destination bar previews the exact resulting path, and Move here stays disabled
until you pick a valid target.
Illegal targets explain themselves — "a folder cannot be moved into itself", "already in this folder".
8. Interface changes
Glass design — the admin sidebar and content panel are layered translucent panels
over an ambient gradient. The sidebar is a darker recessed rail; the content panel sits higher.
Section tabs sit in a raised track so the top-level switcher reads as primary navigation.
Home covers every section — a Sections row (Scripts, Software, Doc Storage, Templates,
Reminders) driven by one list, so future features appear automatically.
Mobile — the page can no longer be dragged sideways; the sidebar is a proper
full-height drawer with a tap-to-close backdrop.
Icons — each app has its own glyph and brand colour instead of a shared generic icon;
the picker is a searchable dropdown, and folder icons are set inside Rename.
Launcher theme — dark mode now uses the same navy family as the admin panel, and the
sidebar count pills follow the active theme instead of staying dark on a light background.
Reminders has no separate landing page; it opens straight to the list with its
summary and saved views in the left panel, like every other section.
9. Reliability fixes
Symptom
Cause & fix
"Download failed (502)" on some documents
Filenames containing an en-dash (e.g. “Printer Setup – HP T870.docx”) broke the
download header. Now RFC 5987 encoded.
Rename failed, or 404 on some files
Paths with spaces or brackets built malformed GitHub URLs. Every path segment is now percent-encoded.
Rename stuck on "Moving 1 / 1…"
An unexpected error was swallowed silently. Failures now always report, and a stale tree
says "source not found (404) — refresh and try again".
Admin opened to a blank page until you clicked Home
The Reminders sidebar threw during first render and aborted startup. Fixed, plus the panes
can no longer take each other down.
Winget installs failing on domain PCs
Elevated sessions could not find winget.exe; it is now resolved from the
machine-wide path, with an uninstall fallback by display name.
Scheduled tasks never ran
The schedule date was written in US format on a non-US machine, silently scheduling months
away. It now uses the machine's own date format.
White flash when the launcher started
Fixed by compositing the window with transparency.
10. Security
A full audit was carried out and the findings fixed — brute-force protection, lockout with
break-glass recovery, path confinement, security headers, and CDN pinning.
If you are locked out, or forgot the admin password, follow
Security & Recovery — it has the step-by-step
procedures.
Most important operational item: the admin password is the only credential.
Rotate it to a long random string, and consider setting ADMIN_RECOVERY_KEY so a lockout
never needs a redeploy.