A TempleOS distro for heretics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
minexew 348386b5ca Implement <exe> tags in HTM files 1 year ago
.github Use MakeStdDistro instead of DoDistro and clean up a bunch 1 year ago
Adam Change User-Agent to Adam/Net/Http 1 year ago
Apps Use official package server URL 1 year ago
Build HtServ: serve /Www/Index.HTM by default 1 year ago
Compiler No binaries in my source tree!! 2 years ago
Demo Implement <exe> tags in HTM files 1 year ago
Doc Hello Shrine 2 years ago
Downloads No binaries in my source tree!! 2 years ago
Kernel Hello Shrine 2 years ago
Misc Use MakeStdDistro instead of DoDistro and clean up a bunch 1 year ago
Www Implement <exe> tags in HTM files 1 year ago
BUILDING.md Re-add docs 1 year ago
CHANGELOG.md HtServ: serve /Www/Index.HTM by default 1 year ago
HomeKeyPlugIns.HC TempleOSCDV5.02.ISO 3 years ago
HomeLocalize.HC TempleOSCDV5.00.ISO 3 years ago
HomeSys.HC TempleOSCDV5.00.ISO 3 years ago
HomeWrappers.HC TempleOSCDV4.11.ISO 3 years ago
LICENSE Add Unlicense 2 years ago
MakeHome.HC TempleOSCDV5.01.ISO 3 years ago
Once.HC Hello Shrine 2 years ago
PACKAGES.md Re-add docs 1 year ago
PersonalMenu.DD TempleOSCDV5.01.ISO 3 years ago
PersonalNotes.DD TempleOSCDV4.11.ISO 3 years ago
QEMU.md Update README 1 year ago
README.md Update README.md 1 year ago
StartOS.HC TempleOS V5.03 Nightly (ISO SHA-1 aed1efc) 3 years ago
mfa.py Hello Shrine 2 years ago
snail.py Hello Shrine 2 years ago


Shrine is a TempleOS distribution full of sin.


Shrine aims to be 99% compatible with TempleOS programs, but also to improve OS in several ways:

  • Ease of use: Shrine ships with Lambda Shell, which feels a bit like a classic Unix command interpreter
  • Connectivity: TCP/IP stack & internet access out of the box
  • Software discovery: Shrine includes a package downloader

You can run Shrine in a virtual machine such as VirtualBox or QEMU, or on a machine compatible with standard TempleOS. Improvements in hardware support are planned and contributions are welcome.

Software included in Shrine:

  • Mfa (minimalist file access)
  • Lsh (Lambda Shell)
  • Pkg (package downloader)
  • Wget

Networking & host-VM communication

  • With a virtual AMD PCNet adapter (recommended)

    • configure your VM networking: Adapter Type: PCnet-PCI II (in QEMU: -netdev user,id=u1 -device pcnet,netdev=u1)
    • Attached to: NAT seems to be the most reliable setting, Bridged Mode also works somewhat
    • On boot, Shrine will automatically attempt to acquire an IP address. If you don't see a message about "Configuring network", the adapter was not detected.
  • Tunelled through serial port (Snail):

    • configure your VM: COM3 - TCP, server, 7777 (in VirtualBox, server = UNCHECK Connect to existing)
    • (make sure to disable networking for the VM, otherwise Native Stack will get precedence)
    • start the VM
    • run ./snail.py
    • you will now be able to access the Internet, try for example pkg-list
  • File access through Mfa:

    • configure your VM: COM1 - TCP, server, 7770
    • start /Apps/Mfa.HC.Z in the VM
    • on the host, use ./mfa.py to transfer commands and files
    • for example: ./mfa.py list /Apps/Mfa.HC.Z Mfa.HC

Networking and Mfa can be used simultaneously.

Package management functions

Note: In Lsh, use pkg-install xyz in place of PkgInstall("xyz") etc.

  • PkgList;

    List all packages available in the repository.

  • PkgInstall(U8* package_name);

    Download & install a specific package.

  • PkgInstallFromFile(U8* manifest_path);

    Manually install a downloaded package. Manifest must reference an existing .ISO.C path.

  • PkgMakeFromDir(U8* manifest_path, U8* src_dir);

    Build a package from directory contents. For an example manifest, check here. Manifest must reference a valid .ISO.C path which will be used as output!

  • PkgMakeFromFile(U8* manifest_path, U8* file_path);

    Build a package from a single file. See above for details.

See here for more information about how packages work.

Building from source

See here