mrkeyoor.com_
Thu 24 Sept 15:47 UTC
Automationevaluationupdated 24 Sept 2026

laya review

Laya is a local-first desktop command center that turns notifications from work services into AI-researched cards for a person to approve or dismiss. It connects email, chat, calendars, code hosts, and project trackers through a local Python engine and n8n, with local models or bring-your-own cloud keys.

Verdict

Our Laya install pulled 141 packages and 527 MB, but pytest stopped after 3 seconds because pytest_asyncio was missing and the audit found 5 known vulnerabilities. The product idea suits a technical solo user drowning in cross-platform notifications, provided the first trial uses disposable integrations and disables outbound actions. Wait for the local API report, dependency audit, and clean test setup to be resolved before trusting it with production mail, chat, or repository credentials.

We ran it

Lab card: what happened when we ran layaScreenshot of laya (github.com/aayushch/laya)
Install✓ · 18s141 packages · 527 MB
Build✓ · 4s
Tests✗ · 3sran, no count parsed
Known vulns5(pip-audit)
Repo674 files~120,572 lines of source · 59.4 MB · 2 CI workflows · tests dir

Answers from our run

Does laya build from source?

Dependencies installed in 18 seconds (141 packages), and the build succeeded in 4 seconds. We cloned commit c39c79f into a clean Debian container with 3 CPUs and no project-specific setup.

Do laya's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does laya have known vulnerabilities in its dependencies?

pip-audit flagged 5 known advisories in the dependency tree at the time of our run.

Who should not use laya?

Anyone expecting a verified clean install: our environment had 5 known vulnerabilities, and pytest stopped because pytest_asyncio was missing.

What are the alternatives to laya?

n8n, Activepieces, Dify. Our Laya install pulled 141 packages and 527 MB, but pytest stopped after 3 seconds because pytest_asyncio was missing and the audit found 5 known vulnerabilities.

Setup2/518-second install, but tests fail on a missing test dependency
Docs4/5Architecture and operations are detailed; test setup is incomplete
Community2/5259 stars and 7 open issues or PRs, with active September responses
Maturity2/5v1.6.0 ships broadly, but API, setup, audit, and test concerns remain

Who it’s for

Solo operators whose work is split across Slack, Gmail, GitHub, Jira, calendars, and similar services.
Developers who want Claude Code, Codex, Gemini CLI, or Pi CLI involved in card workspaces.
Teams willing to run local n8n and review every staged outbound action before approval.
Tinkerers prepared to inspect logs, connector permissions, budgets, and model output during a limited trial.

Who it’s NOT for

Anyone expecting a verified clean install: our environment had 5 known vulnerabilities, and pytest stopped because pytest_asyncio was missing.
Users who treat every local process as untrusted: open issue 13 reports unauthenticated access to sensitive engine routes from the same machine.
Teams needing a small desktop utility: the engine install alone pulled 141 packages and used 527 MB before n8n, UI packages, or model data.
Windows users who cannot debug first-run provisioning: issue 16 reports v1.6.0 stopping at 4 of 5 setup steps because the engine did not respond.
Organizations that will not grant one application access to notification content and outbound actions across several work accounts.

Setup reality

Our sandbox installed 141 Python packages in 18 seconds and used 527 MB. The build passed in 4 seconds. Tests failed with exit code 4 after 3 seconds because pytest_asyncio was missing; pip-audit found 5 known vulnerabilities.

A release build provisions a Python engine and local n8n, then needs either Ollama or LM Studio or API keys for a cloud model. Each connected service adds OAuth or API credentials. Laya stores model keys in the OS keychain and its event, vector, workflow, and log data under ~/.laya/.

Source development needs Python 3.10+, Node.js 20+, Rust, Tauri system libraries, ports 8420 and 45678, SQLite, ChromaDB, and n8n. The clean test failure shows the documented engine dependency set did not include everything its conftest imported.

Nine work services become approval cards in one desktop app

Laya names 9 integrations: Gmail, Slack, GitHub, Bitbucket, Jira, Linear, Notion, Outlook, and Google Calendar. Local n8n workflows normalize incoming events before a Python engine classifies them, researches context, and prepares Action Cards. The Tauri interface presents those cards for approval or dismissal. This is useful when a ticket, email thread, pull request, and meeting all describe the same piece of work.

The product reaches beyond notification display. Card workspaces can hand a task to Claude Code, Gemini CLI, Codex, or Pi CLI through several approval steps. Hybrid retrieval combines ChromaDB vectors with SQLite FTS5 keyword search, while Coherence links people, tickets, and pull requests across platforms. Processing rules can tag, route, start an agent, or send an outbound action. Every rule firing gets a logged outcome, which matters when the system is allowed to prepare mail, Slack messages, or repository comments.

Two local services turn installation into system administration

The Python engine listens on port 8420, and Laya runs a private n8n instance on port 45678. SQLite stores events, cards, workspaces, rules, and chat; ChromaDB stores semantic-search data. Logs rotate under ~/.laya/logs/, while n8n maintains its own workflow data and encrypted credentials. This is a small local stack with multiple databases and processes, even though the user sees one desktop window.

Model choice adds another branch. Ollama and LM Studio keep inference local, while Anthropic, OpenAI, Google, and other LiteLLM-compatible providers need API keys. Installed CLI agents can also provide inference through their existing quotas. The README says Claude Code enforces JSON schemas natively, whereas other agent backends use best-effort schemas plus retries. A team should test its exact backend because a provider name alone does not guarantee the same structured output or failure behavior.

What happened when we ran it

Our sandbox installed 141 Python packages in 18 seconds and used 527 MB on disk. The engine build completed in 4 seconds. commit c39c79f occupied 59.4 MB before installation and contained 674 files with roughly 120,572 lines of source. The repository had 2 CI workflow files and a tests directory, but no Dockerfile.

Pytest failed with exit code 4 after 3 seconds, before it could report any passed or failed cases. The log says engine/tests/conftest.py imported pytest_asyncio and raised ModuleNotFoundError: No module named 'pytest_asyncio'. That module is absent from the core engine/requirements.txt we inspected. Pip-audit also reported 5 known vulnerabilities in the installed environment. The lab block does not give their packages or severities, so the count is the limit of what we can claim.

An open API report matters because Laya can send messages

Open issue 13 says most FastAPI routes on 127.0.0.1:8420 accept local requests without a token. The reporter lists event ingestion, card changes, settings, rules, egress, and an MCP token route among the reachable surfaces. Binding to loopback and restricting browser origins reduce remote web exposure, but they do not authenticate another process already running on the same computer.

That report had not been closed when checked on September 24, 2026, and it does not include a maintainer confirmation or fixed release. Treat it as a specific open allegation that deserves reproduction, not a completed security audit. Its impact is still relevant to adoption because Laya can hold notification content and stage email, Slack, or pull-request actions. Run a trial under a separate OS account, grant narrow connector scopes, keep egress disabled, and avoid production secrets until the route behavior is verified.

Version 1.6.0 has broad packages and narrow failure reports

Version 1.6.0 was published on September 19, 2026, with assets for Intel and Apple Silicon macOS, x64 Windows, and x64 Linux. The release page includes installer signatures for several artifacts. Five days later, the repository was pushed again and GitHub showed 259 stars with 7 combined open issues and pull requests. Recent issue responses show active maintenance rather than a frozen release.

Two setup reports deserve attention. Issue 16 says Windows 11 provisioning reached 4 of 5 steps before the engine stopped responding. Issue 15 reported that the Linux RPM failed because an MCP 2.x name changed, and that issue was closed the next day. The requirements now pin mcp below version 2, which is consistent with a narrow dependency correction. Fast response is encouraging, but a work hub with 141 engine packages needs stronger clean-install coverage than our missing test dependency demonstrated.

The approval model is useful only when approval stays meaningful

Laya's budget caps, preview-before-send flow, firing log, audit export, and dead-event retries give an operator places to inspect automation. Its 3-tier data classification can route work between local and cloud models. Those controls can reduce accidental spending or sending, provided the user reads cards and keeps connector permissions narrow.

The current evidence supports a limited evaluation rather than full trust. Use 1 or 2 noncritical integrations, a local model if available, and read-only MCP scopes. Check the 5 audit findings outside this review, add the missing test dependency in an isolated development setup, and reproduce issue 13 before enabling write or egress tools. Laya may save attention once those gates hold. Until then, the safest feature is the approval step, and the operator should make it hard for any other path to bypass it.

Alternatives

ProjectWhat it isPick it when
n8n gh↗A visual workflow automation platform with a large connector catalog and self-hosting options.pick this instead when explicit workflows and connector breadth matter more than Laya's unified notification cards.
Activepieces gh↗A self-hostable automation builder aimed at connecting services and AI steps.pick this instead when several people need shared automations without Laya's desktop command-center model.
Dify gh↗A platform for building and operating AI applications, agents, and workflows.pick this instead when the goal is to build AI workflows or apps rather than triage one person's work notifications.

What people are saying

  1. [github-trending] aayushch/laya
  2. [velocity-scout] ipenywis/laya-ultrafast
  3. [hackernews] Laya (OS Jev) on Mac M4 CoreML Offline (45 decisions per second)
  4. [velocity-scout] mizorewww/laya-coreml
  5. [velocity-scout] mizorewww/laya-mlx
  6. [hf-trending] convaiinnovations/laya (trending model on Hugging Face)

Sources

  1. Laya repository and README
  2. Laya v1.6.0 release
  3. Issue 13: unauthenticated local REST API report
  4. Issue 16: first-run engine does not respond
  5. Laya security policy

More automation reviews

prod-FARM-IOS-Core · ha_xiaomi_home · FreePEP · fragment-api-dev · undress-service · fullsend · the whole board →