Repository navigation
website: add an agent-facing page on driving Anthias over the API - #3426
Merged
Merged
Conversation
Anthias is well suited to being operated by an AI agent — every player serves its own REST API on the LAN, so a fleet is just a list of base URLs — but nothing on the site said so, and an agent pointed at the existing pages had to assemble the workflow from the API reference, the install docs and the scheduling docs. Add /agents/, written to be read by an agent: the three-step path (install a player, turn on authentication, publish and schedule content), complete curl examples for each, the asset and scheduling field semantics, a fan-out example across N devices, and the limits worth knowing (no central server, per-device asset ids, single operator account). Every request on the page was run against a real device, which turned up two things worth writing down: an unauthenticated API call answers 302 to the login form rather than 401, so a client that follows redirects silently turns a rejected request into a 200 with an HTML body; and enabling auth needs current_password once an operator account exists, including when re-enabling after a period with it switched off. The /api/ page claimed the API "does not require an API token" with no mention that Basic auth can be switched on, which has been wrong since the auth backend landed. Correct that section and link it to the new page. Add the page to the footer; llms.txt picks it up automatically from the built output. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai>
There was a problem hiding this comment.
Copilot encountered an error: Your billing is not configured or you have Copilot licenses from multiple standalone organizations or enterprises. To use premium requests, select a billing entity via the GitHub site, under Settings > Copilot > Features.
There was a problem hiding this comment.
Copilot encountered an error: Your billing is not configured or you have Copilot licenses from multiple standalone organizations or enterprises. To use premium requests, select a billing entity via the GitHub site, under Settings > Copilot > Features.
|
vpetersson
approved these changes
Oct 27, 2026
a10kiloham
pushed a commit
to a10kiloham/Anthias
that referenced
this pull request
Oct 27, 2026
) 47 upstream commits: viewer tick-start wait anchoring (Screenly#3328), WiFi captive-portal return (Screenly#3399) + cosign image verification (Screenly#3401), celery/pipeline/webview reliability fixes, core-dump ulimits, fd-table bound, WAL/startup ordering fixes, dep bumps, website content (inert). Fork-side resolutions: - loops x anchoring unified: replay k ends at tick_start + duration*(k+1), so a slot takes exactly duration*loops and co-located players stay in step; view_video keeps its skip return under the new deadline signature - cosign: fork images sign/verify under this repo's docker-build identity on Docker Hub (hard-fail; no GHCR pass), gated on PUSH_IMAGES - wifi-connect pinned to ghcr.io/a10kiloham/wifi-connect — a cosign-copy mirror (signatures included) so devices verify upstream's release identity while pulling from fork-controlled infra; mirror workflow extended accordingly - expiration stays removed (_parse_local_datetime not resurrected); compose keeps robkanthias/* images + takes no-core-dumps ulimits; balena workflow/templates stay deleted; fork version metadata adopts upstream's 2026.10.0 - both sides' new tests kept (loops tests re-pinned to anchored timeouts) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KncEQmFAq9eGUjf7WCGiEw
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What
Adds
/agents/to anthias.screenly.io — a page about driving Anthias from an AI agent, written to be consumed by one.It follows the three-step path a user would actually take:
GET /api/v2/infoas the readiness poll.PATCH /api/v2/device_settingswithauth_backend: auth_basic, thecurrent_passwordrule, and then HTTP Basic on every call.Plus the limits worth stating up front: no central server, per-device asset ids, a single operator account, device-local timezone.
Why
Anthias is a good fit for this — every player serves its own REST API on the LAN, so a fleet is just a list of base URLs, with no tenant model and no SDK — but nothing on the site said so. An agent pointed at the site had to assemble the workflow from the API reference, the install docs and the scheduling docs, and the two things most likely to trip it up were written down nowhere.
How I know it is right
Every request on the page was run against a real device on the QA rig before it was written down. That turned up the two gotchas the page now calls out:
302to/login/, not401. A client that follows redirects by default turns a rejected request into a200with an HTML login page. Wrong credentials do give a clean401.current_passwordonce an operator account exists, including when re-enabling after a period with auth switched off — a first-time enable does not.Also verified live: the
file_asset→assetsupload handshake and theuri/extround trip,play_daysas ISO weekdays withplay_time_from/play_time_to, theyoutube_assetURI validation, and that/api/schema/stays readable while auth is on. Test assets were deleted and the device's auth setting restored afterwards.Also in this PR
The
/api/page claimed the API "does not require an API token" with no mention that Basic auth can be switched on, which has been wrong since the auth backend landed. That section is corrected and links to the new page.The page is in the footer under Resources;
llms.txtandllms-full.txtpick it up automatically from the built output, and it is in the sitemap.hugobuild is clean.🤖 Generated with Claude Code