Ben Sheridan-Edwards 7355884051 feat(desktop): auto-discover Honcho instances on localhost (#1)
* feat(desktop): auto-discover Honcho instances on localhost

First-launch and on-demand discovery of running Honcho instances on
127.0.0.1:8000-8100. Desktop-only — the browser can't port-scan due to
CORS, so the scan runs in the Tauri Rust shell.

- New Rust command `discover_honcho_instances(start_port?, end_port?)`
  in src-tauri/src/discover.rs: parallel TCP probe of each port with
  150ms connect timeout + 250ms total request budget, looking for a
  /health endpoint returning `{"status":"ok"}`.
- New TS helper `discoverHonchoInstances()` in src/lib/discovery.ts:
  detects Tauri runtime; web build degrades to an empty result.
- `suggestNameForInstance()` fetches the first workspace and derives a
  friendly name from its id ("neo-personal" -> "Neo"). Used to seed the
  Name field for each discovered instance.
- `DiscoveredInstances` component: list of found instances with
  editable suggested names + per-row checkbox + "Add N instances"
  button. Rows are pre-checked by default and filter out already-
  configured baseUrls.
- Wired into `InstancesManager`:
  - First launch (no instances): renders above the connection-type
    chooser with autoRun=true. User sees results immediately.
  - With instances: adds a "Discover instances" button to the list
    view that opens the discovery flow on demand.
  - Both paths gate on `isTauri()`; the web build keeps its existing
    behaviour unchanged.

Adds tokio (with net + io-util + time + rt + macros) and futures to
the Tauri shell to get async TCP + join_all.

Tests:
- deriveNameFromWorkspaceId handles hyphenated, multi-segment, and
  no-hyphen ids

* test(desktop): add probe tests including live Hermes stack integration

- rejects_inverted_port_range
- ignores_ports_with_no_listener
- finds_live_hermes_stacks (#[ignore]d; opt-in with --ignored)

The ignored test exercises discover_honcho_instances against ports
8000-8010, expecting exactly [8001, 8002, 8003, 8004, 8005]. Verified
locally — the probe finds all 5 stacks in <10ms.

---------

Co-authored-by: Agents <agents@Jarviss-Mac-mini.local>
2026-05-28 14:09:45 -05:00
2026-04-24 21:30:48 -05:00
2026-04-24 21:30:48 -05:00
2026-05-15 14:25:41 -05:00
2026-05-15 03:07:43 +00:00
2026-05-15 03:07:43 +00:00

OpenConcho

OpenConcho

A fast, privacy-first desktop & web UI for self-hosted Honcho instances.

CI Latest release Downloads Platforms License


Browse memories, peers, sessions, and conclusions — or chat with full memory context — directly against your own Honcho instance. All connection details stay in your browser; nothing leaves except requests to the URL you configure.

Features

Dashboard Workspace count and queue status, auto-refreshes every 10 s
Workspaces Paginated list with per-workspace navigation
Peers Browse peers, view representations, context, and peer cards
Sessions Paginated message history with summaries and context
Conclusions Semantic search across conclusions with observer/subject display
Webhooks Manage and trigger webhooks per workspace
Chat Conversational interface through Honcho's chat endpoint with memory context
Schedule Dream Trigger Honcho's dream/consolidation pass on demand
Dark / light mode Persisted per device, instant toggle
Optional auth Token field is optional; connection health check auto-detects auth requirement

Download

Pre-built binaries are attached to every GitHub Release:

Platform File
macOS (Apple Silicon) OpenConcho_*_aarch64.dmg
macOS (Intel) OpenConcho_*_x64.dmg
Linux openconcho_*_amd64.deb / openconcho_*_amd64.AppImage
Windows OpenConcho_*_x64-setup.exe / OpenConcho_*_x64_en-US.msi

Quick Start

Prerequisites

Web app

git clone https://github.com/offendingcommit/openconcho.git
cd openconcho
pnpm install
pnpm dev

Open http://localhost:5173 and enter your Honcho URL when prompted.

Desktop app (Tauri)

Additional prerequisites: Rust stable + Tauri system dependencies for your OS.

git clone https://github.com/offendingcommit/openconcho.git
cd openconcho
pnpm install
pnpm --filter @openconcho/desktop dev

Connecting to your instance

  1. Enter the base URL of your Honcho instance (e.g. http://localhost:8000)
  2. Optionally enter an API token if your instance requires auth
  3. Click Test connection — the UI reports whether auth is needed
  4. Click Save — you're in

Production build

pnpm build                                    # web only → packages/web/dist/
pnpm --filter @openconcho/desktop build       # desktop → packages/desktop/src-tauri/target/release/bundle/

Stack

Layer Library
Desktop shell Tauri v2
Framework React 19 + Vite 8
Routing TanStack Router v1 (file-based)
Data fetching TanStack Query v5
API client openapi-fetch (typed from openapi.json)
Styling Tailwind CSS v4 + CSS custom properties
Animation framer-motion
Icons lucide-react
Lint / format Biome 2
Tests Vitest 4 + Testing Library
Releases semantic-release (conventional commits)

Development

pnpm dev              # Vite dev server (web, http://localhost:5173)
pnpm test             # Vitest test suite
pnpm lint:fix         # Biome lint + format
pnpm typecheck        # TypeScript strict check
pnpm generate:api     # Regenerate src/api/schema.d.ts from openapi.json

Regenerating API types

When your Honcho instance is updated, pull a fresh schema and regenerate:

curl http://your-honcho-url/openapi.json -o packages/web/openapi.json
pnpm --filter @openconcho/web generate:api

Privacy

  • Base URL and token stored in localStorage under openconcho:config
  • Theme preference stored in localStorage under openconcho:theme
  • No telemetry, no analytics, no external requests beyond your configured Honcho instance

Contributing

Open an issue first for significant changes. PRs welcome.

License

MIT

Description
No description provided
Readme MIT 7.3 MiB
Languages
TypeScript 92.8%
Shell 2.8%
JavaScript 1.3%
CSS 1.2%
Rust 0.7%
Other 1.2%