pithos.sia: Open my Pithos, and a hint on app addresses

A pithos.sia app address opened outside Theseus showed the home page
without a word. It now says it is an app address and offers to open it
in the Pithos running on this computer; the top bar and hero get an
Open my Pithos link (inside Theseus it simply goes to the app). Docs
explain the confirmation and that it works on the same computer only.
This commit is contained in:
Local Dev 2026-10-05 01:47:13 +02:00
parent 660cbb8463
commit aefa60d6b4
3 changed files with 55 additions and 1 deletions

View file

@ -118,6 +118,10 @@ sudo apt install ./Pithos-*-amd64.deb # then start Pithos from t
<pre class="code" data-lang="bash"><button class="copy" type="button" aria-label="Copy">Copy</button><code>npm install
npm run desktop</code></pre>
<p>The window signs itself in, installs s3d into its own folder (<code>%APPDATA%\pithos\bin</code> on Windows) and stops s3d when you quit. The version in the footer turns into "↑ vX" when a newer build is out; click it to download that build, then run it to update. Build the installers yourself with <code>npm run dist:win</code> (or <code>dist:linux</code> / <code>dist:mac</code> on those systems).</p>
<h3 id="opening-pithos-in-another-browser"><a class="anchor" href="#opening-pithos-in-another-browser" aria-hidden="true">#</a>Opening Pithos in another browser</h3>
<p>Pithos runs on your computer, not on the pithos.sia website. Two ways to reach it from a browser other than Theseus:</p>
<ul><li><strong>Open in browser</strong> (under the navigation, or in the ☰ menu) in Theseus or the desktop app opens the page you are on in your default browser, signed in with a one-time link.</li><li><strong>Open my Pithos</strong> on the pithos.sia website, or <strong>Open in my Pithos</strong> on a pithos.sia app address such as <code>pithos.sia/&lt;user&gt;/&lt;drive&gt;</code>, goes to <code>http://127.0.0.1:47621/open</code>. The Pithos running on this computer (Theseus or the desktop app) then asks you, in its own window, whether to open in that browser. Nothing is signed in unless you say yes, and the website learns nothing either way.</li></ul>
<p>A browser opened this way has the same access as Pithos itself until you quit Pithos (or restart Theseus). It works on the same computer only: port 47621 listens on 127.0.0.1. If both Theseus and the desktop app run, the one that started first answers.</p>
<h3 id="which-s3d-pithos-manages"><a class="anchor" href="#which-s3d-pithos-manages" aria-hidden="true">#</a>Which s3d Pithos manages</h3>
<p>The same one a hand-run <code>s3d</code> uses: <code>S3D_CONFIG_FILE</code> if set, otherwise <code>%APPDATA%\s3d\s3d.yml</code> (Windows), <code>~/Library/Application Support/s3d/s3d.yml</code> (macOS), <code>/etc/s3d/s3d.yml</code> (Linux). If another s3d already serves that config, Pithos shows it as <strong>external</strong> and does not start a second one.</p>
<h2 id="s3d-on-the-command-line"><a class="anchor" href="#s3d-on-the-command-line" aria-hidden="true">#</a>s3d on the command line</h2>

View file

@ -143,6 +143,15 @@ npm run desktop
The window signs itself in, installs s3d into its own folder (`%APPDATA%\pithos\bin` on Windows) and stops s3d when you quit. The version in the footer turns into "↑ vX" when a newer build is out; click it to download that build, then run it to update. Build the installers yourself with `npm run dist:win` (or `dist:linux` / `dist:mac` on those systems).
### Opening Pithos in another browser
Pithos runs on your computer, not on the pithos.sia website. Two ways to reach it from a browser other than Theseus:
- **Open in browser** (under the navigation, or in the ☰ menu) in Theseus or the desktop app opens the page you are on in your default browser, signed in with a one-time link.
- **Open my Pithos** on the pithos.sia website, or **Open in my Pithos** on a pithos.sia app address such as `pithos.sia/<user>/<drive>`, goes to `http://127.0.0.1:47621/open`. The Pithos running on this computer (Theseus or the desktop app) then asks you, in its own window, whether to open in that browser. Nothing is signed in unless you say yes, and the website learns nothing either way.
A browser opened this way has the same access as Pithos itself until you quit Pithos (or restart Theseus). It works on the same computer only: port 47621 listens on 127.0.0.1. If both Theseus and the desktop app run, the one that started first answers.
### Which s3d Pithos manages
The same one a hand-run `s3d` uses: `S3D_CONFIG_FILE` if set, otherwise `%APPDATA%\s3d\s3d.yml` (Windows), `~/Library/Application Support/s3d/s3d.yml` (macOS), `/etc/s3d/s3d.yml` (Linux). If another s3d already serves that config, Pithos shows it as **external** and does not start a second one.

View file

@ -84,6 +84,14 @@
.topnav a:hover{color:var(--ink);background:var(--panel)}
.topnav a.get{margin-left:auto;background:rgba(61,220,151,.10);color:var(--acc);font-weight:500}
.topnav a.get:hover{background:rgba(61,220,151,.18)}
.topnav a.open{color:var(--ink);border:1px solid var(--line)}
.topnav a.get.after-open{margin-left:8px}
.apphint{max-width:1080px;margin:18px auto 0;padding:16px 18px;border:1px solid rgba(61,220,151,.35);background:rgba(61,220,151,.07);border-radius:12px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.apphint p{margin:0;flex:1 1 320px;color:var(--mut);font-size:15px}
.apphint p b{color:var(--ink)}
.apphint code{color:var(--acc)}
.apphint .btn{padding:.55rem 1rem;font-size:14px}
@media (max-width:720px){ .topnav a.open{display:none} .apphint{margin:12px 16px 0} }
.topnav .menu{display:none}
@media (max-width:720px){
.topnav{padding:10px 1rem}
@ -188,7 +196,8 @@
<a href="vs">Compare</a>
<a href="#faq">FAQ</a>
<a href="docs">Docs</a>
<a class="get" href="#get">Get started</a>
<a class="get open" href="#get" data-open-pithos style="margin-left:auto">Open my Pithos</a>
<a class="get after-open" href="#get">Get started</a>
<details class="menu">
<summary aria-label="Menu"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 7h16M4 12h16M4 17h16"/></svg></summary>
<div class="menu-panel">
@ -199,6 +208,7 @@
<a href="vs">Compare</a>
<a href="#faq">FAQ</a>
<a href="docs">Docs</a>
<a href="#get" data-open-pithos>Open my Pithos</a>
</div>
</details>
</nav>
@ -210,6 +220,7 @@
<div class="cta">
<a class="btn primary" href="#get">Get Pithos</a>
<a class="btn" href="#how">How it works</a>
<a class="btn" href="#get" data-open-pithos title="Opens the Pithos running on this computer (Theseus or the desktop app)">Open my Pithos ↗</a>
</div>
<div class="shot" aria-hidden="true">
@ -373,5 +384,35 @@
<div class="wrap" style="margin-top:1.6rem">s3d is MIT-licensed software by the Sia Foundation. Pithos is an independent, MPL-2.0 Silent Mode project and is not made by the Sia Foundation.</div>
</footer>
<script>
/* "Open my Pithos": Pithos runs on your computer, not on this website. In
Theseus, pithos.sia's own addresses are the app. In any other browser the
link goes to the Pithos on this computer (127.0.0.1:47621), which asks you
in its own window before it opens; this page learns nothing either way. */
(function () {
var inTheseus = location.hostname === 'pithos.sia';
var path = location.pathname.replace(/^\/bns\/pithos\.sia(?=\/|$)/, '').replace(/^\/pithos(?=\/|$)/, '') || '/';
var sitePage = /^\/(index\.html|vs(\.html)?|docs(\/.*)?|llms\.txt)?$/.test(path);
var appPath = sitePage ? '/' : path;
var href = inTheseus ? (sitePage ? '/overview' : path) : 'http://127.0.0.1:47621/open?path=' + encodeURIComponent(appPath);
var links = document.querySelectorAll('[data-open-pithos]');
for (var i = 0; i < links.length; i++) {
links[i].href = href;
if (!inTheseus) links[i].target = '_blank';
if (!inTheseus) links[i].rel = 'noopener';
}
if (sitePage || inTheseus) return;
// An app address (pithos.sia/<user>/<drive>/…) opened outside Theseus.
var shown = 'pithos.sia' + decodeURIComponent(path).replace(/[<>&"]/g, '');
var hint = document.createElement('div');
hint.className = 'apphint';
hint.innerHTML = '<p><b>This is a Pithos app address</b>: <code></code>. Pithos runs on your computer, so this browser shows the website. Open it in Theseus, or open the Pithos running on this computer: it asks you to confirm first.</p>'
+ '<a class="btn primary" target="_blank" rel="noopener">Open in my Pithos ↗</a><a class="btn" href="#get">Get Pithos</a>';
hint.querySelector('code').textContent = shown;
hint.querySelector('a').href = href;
var nav = document.querySelector('.topnav');
nav.parentNode.insertBefore(hint, nav.nextSibling);
})();
</script>
</body>
</html>