mrkeyoor.com_
Sat 03 Oct 07:16 UTC
AI Toolsevaluationupdated 03 Oct 2026

mural review

Mural is a native iPhone and Android language-learning app built around spoken conversations with an AI tutor. It saves transcripts, vocabulary, and learning observations on the phone, then revisits words in later conversations instead of presenting a fixed lesson path.

Verdict

Our Mural backend run passed all 119 tests in 32 seconds, though npm audit still reported 2 moderate vulnerabilities. The mobile product is best for a technical learner who values local records enough to build, sign, and maintain the app personally. Everyone else should wait for a store release or choose a hosted tutor, because the commercial backend and public purchases remain deliberately disabled.

We ran it

Lab card: what happened when we ran muralScreenshot of mural (mural.chat)
Install✓ · 14s125 packages · 91 MB
Build✓ · 6s
Tests✓ · 32s119 passed · 0 failed of 119 (node:test)
Known vulns20 critical · 0 high · 2 moderate · 0 low (npm audit)
Repo737 files~46,142 lines of source · 49.9 MB · 4 CI workflows · Dockerfile · tests dir

Answers from our run

Does mural build from source?

Dependencies installed in 14 seconds (125 packages), and the build succeeded in 6 seconds. We cloned commit c5f9e97 into a clean Debian container with 3 CPUs and no project-specific setup.

Do mural's tests pass?

Yes: 119 of 119 passed when we ran the project's own test command (node:test). Some failures need services or credentials a bare container does not have.

Does mural have known vulnerabilities in its dependencies?

npm audit flagged 2 known advisories in the dependency tree at the time of our run.

Who should not use mural?

Anyone expecting an App Store, Play Store, or public TestFlight install: none is available, and Android uses a personal debug APK.

What are the alternatives to mural?

Anki, Gliglish, Duolingo. Our Mural backend run passed all 119 tests in 32 seconds, though npm audit still reported 2 moderate vulnerabilities.

Setup2/5Backend is clean to build; mobile install needs native toolchains
Docs5/5Clear platform, privacy, billing, setup, and release limits
Community4/51,563 stars with active October issue and code work
Maturity3/5119 backend tests pass, but store and hosted releases are pending

Who it’s for

Developers willing to build and sign a personal mobile app from source.
Language learners who want live conversation practice and can manage a paid OpenAI API project.
People who prefer device-local learning records and manual JSON backups over a cloud account.
Contributors interested in native SwiftUI and Jetpack Compose clients sharing learning rules.

Who it’s NOT for

Anyone expecting an App Store, Play Store, or public TestFlight install: none is available, and Android uses a personal debug APK.
Learners who need offline speaking practice or a non-OpenAI provider: conversations require internet access, and local model support remains an open request.
ChatGPT subscribers without separate API billing and model access: the README explicitly says the subscription does not supply API credit.
Families wanting automatic progress sync across phones: records stay on one device and move through manual JSON export and import.
Buyers seeking a certified level or measured retention score: Mural calls its recall bars product heuristics and says they are not language certificates.

Setup reality

Our fresh Debian sandbox tested commit c5f9e97 only in services/api. Npm installed 125 packages in 14 seconds and used 91 MB. The backend build passed in 6 seconds; all 119 Node tests passed in 32 seconds, and npm audit reported 2 moderate vulnerabilities.

The mobile app takes a separate path. iPhone needs Xcode 26, iOS 26.1, signing, Developer Mode, and a billed OpenAI project key. Android needs Java 17, SDK Platform 36, Build Tools 35.0.0, and the same API access.

The repository has Docker and Compose files for the commercial backend, but hosted voice and live payments are disabled. Running that foundation also needs PostgreSQL and identity or sandbox-payment configuration. Our green backend run did not build either native client.

Mural teaches through live speech, not a fixed course

Mural starts a voice conversation in the language you want to practise, shows optional meaning subtitles, lets you type when speaking is inconvenient, and saves useful words for later sessions. Its 11 language modules carry their own teaching guidance and regional choices. The app also has 24 conversation themes, word lookup, corrections, recall bars, and separate progress for every learning language.

This is a native app on both platforms, not a responsive website wrapped for mobile. The iPhone client uses SwiftUI and requires iOS 26.1 or later. Android uses Jetpack Compose and supports Android 8.0 onward. Active voice can continue when the screen locks, subject to each platform's audio behavior and Mural's silence and duration limits.

Learning records stay local while conversation data goes to OpenAI

Transcripts, saved words, preferences, and learning observations live on the device. There is no Mural cloud sync, advertising, or analytics SDK. You can export a JSON backup, move it between iPhone and Android, or delete conversation and learning data. The OpenAI key stays in Keychain or Android Keystore and is excluded from that backup.

Live practice still sends audio, selected text, learning context, and requested searches to OpenAI. Mural says it requests store: false where supported, while correctly warning that this does not remove every provider retention path. Its 30 MB backup import limit applies on Android, and automatic cross-device sync does not exist. Local storage reduces Mural's data role; it does not make an internet conversation local.

What happened when we ran it

Our sandbox tested commit c5f9e97 in the services/api subproject, not the Swift or Kotlin apps. Npm installed 125 packages in 14 seconds and occupied 91 MB. The TypeScript build passed in 6 seconds. Node's test runner passed all 119 tests in 32 seconds, with 0 failures.

Npm audit reported 2 known vulnerabilities, both moderate, with 0 critical and 0 high findings. The full checkout contained 737 files, about 46,142 lines of source, and 49.9 MB. We found 4 CI workflow files, a Dockerfile, a Compose file, and a tests directory. Those are backend and repository signals, not a claim that we compiled either native client.

Personal installation requires native tools and paid API access

An iPhone build needs a Mac, Xcode 26 or later, an Apple Account, a signing team, Developer Mode, and a device on iOS 26.1 or later. A free personal provisioning profile expires after 7 days, so you must refresh it through Xcode without changing the app identity. There is no public TestFlight or App Store listing.

Android installation needs Java 17, SDK Platform 36, Build Tools 35.0.0, and either ADB or manual APK installation. Both clients need an OpenAI project with billing and access to the configured models. A ChatGPT subscription is separate. Mural's timer and recorded cost display are estimates, not spending caps, so the OpenAI project still needs its own usage limits.

Recall bars describe evidence, not learning effectiveness

Mural derives vocabulary and provisional ability observations from replies that pass its validation rules. A word can gain 1 to 3 recall bars as it is retrieved over time and in different contexts. The README says these bars are heuristics, not calibrated forgetting probabilities, proficiency certificates, or proof that a teaching method works. That restraint is appropriate for an app making inferences from AI-mediated conversations.

The project also says Mandarin pinyin comes from system dictionary readings and still needs listening checks for names, ambiguous words, and connected speech. Open issue 138 proposes flashcards but leaves decisions about selection and scoring unresolved. Open issue 20 asks for on-device models and offline conversation. Neither aspiration should be described as a shipped feature.

The backend is a foundation, not a public paid service

The Node service contains accounts, a time ledger, guest transfers, sandbox Stripe flows, and an allowlisted voice experiment. Hosted free conversations and minute purchases are disabled. Live Stripe secrets are rejected, hosted voice defaults off, and the runbook lists provider hangup testing, attestation, refunds, taxes, reconciliation, and spending protection as work required before activation.

GitHub showed 1,563 stars, 29 combined open issues and pull requests, and a last push on October 3, 2026. Recent issue 139, about keeping voice active through screen locks, was closed after implementation work. That pace and the 119 passing backend tests are encouraging. The practical product remains a personal source build with your own API key, and the 2 moderate audit findings still need review before any backend deployment.

Alternatives

ProjectWhat it isPick it when
Anki gh↗A mature spaced-repetition app centered on user-created flashcards.pick this instead when scheduled recall and full deck control matter more than live conversation.
GliglishA browser-based AI speaking coach that avoids compiling a mobile app.pick this instead when immediate hosted conversation practice matters more than local records.
DuolingoA hosted language-learning service with structured lessons and mobile distribution.pick this instead when you want a ready-made course and store installation instead of a source build.

What people are saying

  1. [velocity-scout] Chuloo/mural

Sources

  1. Mural README
  2. Mural backend runbook
  3. Mural iPhone installation guide
  4. Mural Android installation guide
  5. Offline model request issue 20

More ai tools reviews

GPT-as-Policy · NeuralScreen · recurrent-looped-tranformer · gpu-time · OpenWAM · xialingguo-ip · the whole board →