{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-17T01:56:13.055Z",
  "lang": "en",
  "slug": "conduit",
  "url": "https://tesign.com/en/item/conduit/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/conduit/",
      "json": "https://tesign.com/item/conduit/index.json",
      "markdown": "https://tesign.com/item/conduit/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/conduit/",
      "json": "https://tesign.com/en/item/conduit/index.json",
      "markdown": "https://tesign.com/en/item/conduit/index.md"
    }
  },
  "name": "Conduit",
  "use_label": "Phone terminal for reaching servers",
  "one_liner": "SSH, Mosh, SFTP terminal for Android and iOS with no account; hardware keys over USB/NFC",
  "text": {
    "why": "Hosts, keys and trusted fingerprints stay on the device — no account, no cloud sync, no subscription. Mosh runs on dart_mosh, a clean-room Dart implementation, so a session survives Wi-Fi drops and cellular handoffs; ed25519-sk and ecdsa-sk FIDO keys work over USB and NFC on Android and NFC on iOS (tested with YubiKey). On Android arm64 it can also open a local Arch Linux shell, with pacman, through proot — no server involved.",
    "take": "A phone terminal with hardware-key auth and Mosh, no account or subscription attached, with the source under Apache-2.0.",
    "build": [
      "Per-host tmux auto-attach plus run-on-connect snippets make a phone-side server check routine; hardware-key auth with agent forwarding covers a jump-host workflow."
    ],
    "who": [
      {
        "role": "Server operators",
        "situation": "SSH/Mosh on the move with tmux auto-attach"
      },
      {
        "role": "Security-key users",
        "situation": "SSH auth from a phone with YubiKey or other FIDO keys"
      },
      {
        "role": "Android users",
        "situation": "a local Arch Linux shell with pacman, no server needed"
      }
    ],
    "start": [
      {
        "command": false,
        "text": "1. App Store: https://apps.apple.com/app/id6780054869"
      },
      {
        "command": false,
        "text": "2. Google Play: https://play.google.com/store/apps/details?id=com.gwitko.conduit"
      },
      {
        "command": false,
        "text": "3. F-Droid: https://f-droid.org/packages/com.gwitko.conduit/ (or track GitHub releases with Obtainium)"
      },
      {
        "command": false,
        "text": "4. Add a machine in the app, import a private key from a file or generate an ed25519 key on device, then connect"
      },
      {
        "command": false,
        "text": "(No shell install commands in the README — store-distributed)"
      }
    ],
    "caveat": [
      "Conduit's own code is Apache-2.0. Android builds with the local shell redistribute Termux-packaged third-party binaries (proot and others) under their own licences, GPL/LGPL included, listed in THIRD_PARTY_NOTICES.md. The local Arch Linux shell is Android arm64 only, not iOS. The Google Play build omits the /mnt/android shared-storage mount (all-files permission). iOS hardware keys are NFC only. The app is free per the homepage. Last push 2026-07-24."
    ]
  },
  "cta": {
    "type": "install",
    "label": "INSTALL",
    "url": "https://conduit.gwitko.dev/"
  },
  "ready": "install",
  "categories": [
    "dev-tools"
  ],
  "categories_confirmed": true,
  "tags": [
    "ssh",
    "mosh",
    "sftp",
    "android",
    "ios",
    "flutter"
  ],
  "platform": [
    "android",
    "ios"
  ],
  "license": {
    "spdx": "Apache-2.0",
    "scope": "permissive",
    "scope_text": "Commercial use, redistribution OK. Keep notices; mark changes.",
    "url": "https://spdx.org/licenses/Apache-2.0.html",
    "note": null,
    "open_source": true
  },
  "language": "Dart",
  "source_urls": {
    "canonical": "https://conduit.gwitko.dev/",
    "github": "https://github.com/gwitko/conduit",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "showhn",
        "url": "https://github.com/gwitko/Conduit",
        "posted_at": "2026-06-18T09:32:53.000Z",
        "hn_url": "https://news.ycombinator.com/item?id=48582962"
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-16T21:00:00.000Z",
    "stars": 379,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-15T19:35:37.673Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": null,
    "star_delta_30d": null,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": 3,
    "hn_points_observed_at": "2026-09-13T15:58:01.857Z",
    "store": null,
    "method": "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours."
  },
  "ranks": null,
  "activity": {
    "pushed_at": "2026-07-24T08:41:33.000Z",
    "owner_type": "User",
    "open_issues": 36,
    "contributors": 3,
    "releases_count": 33,
    "latest_release": {
      "tag": "v1.4.14",
      "published_at": "2026-07-14T07:59:28.000Z",
      "prerelease": false
    },
    "checked_at": "2026-09-15T19:35:37.673Z",
    "core_checked_at": "2026-09-15T19:35:37.673Z"
  },
  "signals": [
    {
      "kind": "back",
      "label": "BACK CATALOG",
      "value": null
    }
  ],
  "images": {
    "og": "https://tesign.com/img/conduit-9c5c4936f8.webp",
    "cover": "https://tesign.com/img/conduit-9c5c4936f8.webp",
    "cover_width": 1284,
    "cover_height": 2778,
    "gallery": [
      "https://tesign.com/img/conduit-9c5c4936f8.webp",
      "https://tesign.com/img/conduit-bb8fba13ea.png",
      "https://tesign.com/img/conduit-2d3f29ee66.png",
      "https://tesign.com/img/conduit-61544b4c0e.png"
    ],
    "alt": "Conduit on a phone — an SSH terminal running nvim, with the Esc, Ctrl, Alt, Tab and arrow key row above the keyboard",
    "tier": 2
  },
  "dates": {
    "first_seen_at": "2026-09-13T15:58:01.857Z",
    "source_created_at": "2026-06-18T09:32:53.000Z",
    "discovery_hours": 2094.4191269444445,
    "launch_signal_at": "2026-06-18T09:32:53.000Z",
    "kept_at": "2026-09-14T19:27:43.481Z",
    "first_published_at": "2026-09-14T19:27:43.735Z",
    "updated_at": "2026-09-15T04:36:56.826Z",
    "ingestion_mode": "backfill"
  },
  "notes": [
    "This file was produced by the same build, from the same data, as the tesign.com item page. The text is editorial; the numbers are stored observations.",
    "null in the JSON means not observed — never zero. The Markdown writes [unconfirmed] for it.",
    "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours.",
    "Reconstructed from archive data, not a live discovery.",
    "A summary, not legal advice."
  ]
}
