Lyre / documentation
Get Lyre

Lyre facts and review guide

A concise product description, source links and a small demonstration you can evaluate yourself.

On this page

What is Lyre?

Lyre is a workspace for running AI coding agents on your own computer and interacting with live app previews from paired devices. The computer is the host: it holds the project and runs its tools. Keep it awake and reachable when working from another device.

Supported coding agents include Claude Code, Codex and OpenCode. Connect and configure the provider you choose; its accounts, model access and usage terms apply. Local projects and local-network workflows do not require a Lyre cloud account. Coding agents and setup · App previews · Device access.

Check these sources when writing about Lyre
Fact Current source
Downloads and platforms Downloads and device support, public release notes and assets. Record the actual host and client versions you use.
Pricing Current plans and allowances. AI provider usage may have separate charges. Record currency, billing period and date if quoting a price.
Data and access Security and privacy guide and privacy policy. Connection protections vary by path; review device connection disclosures and provider disclosures.

Local project storage does not mean every request stays local. Coding providers can receive prompts and project context. A local model alone does not isolate an agent from the network. Check the configured provider and tools before using sensitive data.

Which workflow fits your task?

Lyre supplies the workspace, device connection and preview around your chosen coding agent. Claude Code, Codex and OpenCode retain their own model access, accounts and approval controls. Choose the workflow you need, then check its requirements.

Start with the result you need
Task Lyre workflow and limits
Control a coding agent and try its app from a phone Continue Claude Code or Codex on your host and open its interactive preview on an approved client. The host must stay awake and reachable; agent access requires Developer or Owner authority.
Let a client test one local app Share app with App-only access. The tester can interact with that app without access to agents, source or terminals. The host controls revocation.
Keep an existing repository on your computer Open the existing project with its own files and tools. Supported app previews have separate runtime requirements; agent support does not make every project previewable.
Run several coding agents Use separate Git worktrees for independent edits and review the results before merging. Worktrees do not isolate processes, ports or permissions.
Use a desktop's model from a laptop Lend selected models through Lyre's early-access model-lending workflow. Inference and provider keys stay on the lender; the borrowing computer keeps its agent, tools and project files.

Do phone previews require hosting or a paid plan?

A supported app runs on your host computer. Using its preview from an approved device does not publish a public website or create a native app-store build. The preview and agent can remain open together, with independent stop controls.

Local and direct-LAN viewing have no time limit. Free includes 30 minutes per account per UTC month pooled across remote app previews and remote desktop on all devices. Simultaneous sessions add their time; sign in on the host to use this allowance. Paid tiers remove that time cap and retain their service quotas. Check current prices and allowances and connection requirements before choosing an off-network workflow.

AI provider charges are separate on Free and Lyre Pro. Check current host and client availability, the supported preview path and the selected provider's terms. This guide does not promise every framework, device or model will work.

Before running the demonstration

Evaluation procedure

The steps below are a demonstration to run and record. They are not measured results, a customer story or a guarantee that a particular setup passes.

What you’ll need
  • A compatible Lyre installation on your host. Check downloads and device support for the client you intend to test.
  • Node.js installed on the host and available to its project commands. This counter uses only built-in Node.js modules and needs no package install.
  • A new empty test folder containing no private data, plus a coding agent you have configured if testing the editing step.
  • Optional: a compatible phone or browser client, authorized for this test project. Begin on the same trusted network.

Record the date, host and client versions, operating systems, agent/model, permission mode, network path and relevant plan. Keep the original files for comparison. Do not use a production project for this demonstration.

1 · Create a repeatable starting point

Create these two files in the empty test folder. Save the first as index.html:

<!doctype html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Lyre review counter</title>
<h1>Review counter</h1>
<p>Count: <output id="count" aria-live="polite">0</output></p>
<button id="add" type="button">Add one</button>
<script>
  const count = document.querySelector('#count');
  document.querySelector('#add').addEventListener('click', () => {
    count.textContent = String(Number(count.textContent) + 1);
  });
</script>
</html>

Save the second as server.mjs:

import { createServer } from 'node:http';
import { readFileSync } from 'node:fs';

const port = Number(process.env.LYRE_PORT || process.env.PASEO_PORT || 4317);
const server = createServer((_request, response) => {
  response.writeHead(200, {
    'Content-Type': 'text/html; charset=utf-8',
    'Cache-Control': 'no-store',
  });
  response.end(readFileSync(new URL('./index.html', import.meta.url)));
});
server.listen(port, '127.0.0.1', () => {
  console.log('Demo listening on http://127.0.0.1:' + server.address().port);
});

From a terminal in that folder, run node server.mjs. Open the local address it prints and click Add one twice: the expected count is 2. Stop this manual server with Ctrl+C before Lyre starts its own copy. If port 4317 is occupied, stop only your own demo process or use the port Lyre assigns in the next step.

The server binds to the host's loopback interface. Access from another device will use Lyre's authorized preview connection; do not forward this demo port to the public internet. The counter keeps no saved data and starts at 0 on each page load.

2 · Open and interact with the preview

  1. Add the folder and save its start command

    Choose Add project and select the test folder. In Projects, open that project's menu and choose Open project settings, then Scripts. Choose Add script, name it preview, enter node server.mjs, and enable Run as a service. Save the script and project settings. The server reads the port Lyre assigns. Startup configuration.

  2. Test the desktop preview

    Choose Open app. Record startup errors if any. From a fresh page, activate Add one twice and record the displayed count; the expected count is 2. Use Tab to focus the button and Enter or Space to activate it. Preview controls and recovery.

  3. Test an authorized client separately

    If you have a compatible client, follow pairing and access, approve access only to the test project, then open its app. Try the same two taps and record the result. Each device has its own counter state; matching numbers across devices are not a synchronization test. Mark this step not tested if a suitable client is unavailable.

3 · Ask for one change and inspect it

In the test project's conversation, send this request after selecting your configured agent:

Add a Reset button to index.html that sets the counter to 0.
Keep Add one working and keep this page dependency-free.
Explain your plan before editing. Do not change server.mjs.
Tell me which files you changed and how I can check the result.

Read the plan and any permission request before approving. Inspect the actual edits in Files and Changes. A completion message is a reason to review the result; it is not a passing test.

Reload the app and record this sequence on each tested device: initial count 0; Add one twice gives 2; Reset gives 0; Add one gives 1. Test both buttons with the keyboard on desktop and by touch on phone. Record failures and any extra edits or retries. Agent output can vary, so retain the final diff with your observations.

Record recovery, access and limitations

  • Reconnection: disconnect the client network, restore it and reconnect. Record whether the app can be reopened and used. Browser reload resets this counter; it has no persistence.
  • Off-network use: if that is part of your review, test it separately with a supported configured connection. Record the actual path and allowance. A same-network pass does not establish off-network behavior. Connection setup.
  • App-only access: to evaluate sharing, use Share app with a separate test client. Check that it can use the chosen app and cannot open agents, source, terminals, other projects or host settings. Remove that client's grant and check that its existing app session and new access attempts stop working.
  • Cleanup: stop the demo service, remove test-device access and retain or delete your test folder deliberately. Stopping a preview does not remove information already sent to a model provider.

For each step, record passed, failed or not tested, the expected and observed behavior, and a redacted screenshot or error where useful. Disclose any supplied access, payment, sponsorship or affiliation. Keep staged demonstrations and edited recordings labeled.

Scope of the evidence

A successful counter demonstration supports that workflow on the recorded setup. It does not establish every framework, device, production deployment or security property. State which steps you ran and which remain untested.

For other workflows, see choosing Lyre, Happy or Replit. For installation or test problems, use troubleshooting.