I have three thoughts on this.
Create a feature that dumps the commands to a text file on demand. You can do with that as you wish.
Create a feature that dumps the commands in a simple HTML table on demand. You can do with that as you wish.
All of the thoughts could require, depending upon where the bot runs, the user to either manually upload a file to their remote server or host the file on their local server.
Thought 3 is the most complete solution in my mind. Why? Because then the broadcaster would have an HTML table of all commands in their PhantomBot – internal and custom – with usage. However, I am not sure how many people have Perl lying around, at least outside of Linux or macOS. This could mean that a different solution may need to be created. Honestly though, I’d go with Thought 3 and have the Perl script create a table to host.
Also, remember that folks can run the following commands in chat, so I feel it is disingenuous to say that there is no way to know what commands are available:
[08-22-2017 @ 01:40:43.872 MDT] [CHAT] @IllusionaryBot, Current custom commands: !frogyou, !insult, !yourmom, !temp, !weather, !chill, !nasty, !lb, !testurl, !testurl2, !uptime, !followage, !playtime, !title, !game, !age, !testapi, !test2, !testjson, !randfile, !lastfm, !ytapi, !cd, !goal, !tapi, !redeemtwitter, !test, !so, !8ballme, !banana, !purgeuser, !line1, !line2, !testencode, !destiny, !callpoints, !testcmd, !sr, !k, !ku, !l, !purge, !addpoints, !addio, !scare, !addpts, !drumroll, !play
[08-22-2017 @ 01:40:44.246 MDT] [CHAT] @IllusionaryBot, Current custom commands: !group, !grouppoints, !groups, !ahook, !primary, !all, !abuse, !things, !goodgood, !twothings, !bothlines
[08-22-2017 @ 01:40:56.513 MDT] [CHAT] @IllusionaryBot, Commands: !chat, !module, !reconnect, !lang, !mute, !toggleme, !log, !togglewhispermode, !permit, !moderation, !mod, !blacklist, !whitelist, !coolcom, !cooldown, !globalcooldown, !toggleglobalcooldown, !togglemodcooldown, !group, !grouppoints, !users, !time, !streamertime, !timezone, !top5, !top5time, !multi, !lastseen, !online, !viewers, !game, !title, !rigged, !dj, !shia, !frogyou, !test2, !insult, !testtags, !yourmom, !temp, !weather
[08-22-2017 @ 01:40:56.889 MDT] [CHAT] @IllusionaryBot, Total Pages: 9 [See also: https://phantombot.tv/commands]
Also note that !botcommands and !commands examines the group of the user running the command list and hides commands that they cannot run based on permissions. No, it isn’t a web page, but there are ways to get the list of commands.