Dulus
An AI agent for your desktop and terminal, on any model you choose. Hosted models run on Fuel, paid in $DULUS.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
A macOS browser that looks and feels like Dia: Chrome's own framework from our
patched Chromium with our layer on top (NNCore), an Expo + React Native macOS shell, and Metal shaders
reconstructed from Dia's own New Tab effects.
Requires Xcode 26+, CocoaPods, Node 22+, pnpm 11.
Build the engine: Chrome's framework from our patched Chromium tree in ~/chromium-build
(docs/cef-source-build.md › "Rebuilding", then engine/chromium/apply.sh, engine/nncore/apply.sh and
autoninja -C out/Release_GN_arm64 chrome_framework; the first build takes about 2 hours). The app's build stages
it from there.Read the full README ↗Move the address bar into the sidebar and the page runs all the way to the top of the window.
Drag a tab onto the page. Up to three panes, side by side or stacked.
Switch tabs mid-video and it floats along in the corner. Go back to its tab and it slips back into the page.
The Chrome Web Store just works, its button says Add to Ardia, and Sync takes them to your other Macs.
The full uBlock Origin is built in, cookie banners included. Google’s pings are compiled out. Crash reports are opt-in and never carry your sites or searches.
Not WebKit. Not Electron. Every window is Chrome’s own, so sites, extensions and DevTools behave like they do in Chrome.
| Part | Details | Status |
|---|---|---|
| Engine | Chromium 157, on Chrome’s own framework. | ✓ Yes |
| De-Googled | Google’s background services stripped out. | ✓ Yes |
| H.264 and AAC | The codecs Chromium leaves out. | ✓ Yes |
| DevTools | Docked, with device mode. Like Chrome. | ✓ Yes |
| Sync | End-to-end encrypted, through your own iCloud Drive. | ✓ Yes |
| Translate | On your Mac. Nothing leaves it. | ✓ macOS 26 |
| Passkeys | Touch ID yes. iCloud Keychain waits on Apple. | ~ Partly |
| Netflix and DRM | Streaming sites open in WebKit, where they play. Widevine in Chromium waits on Google. | ~ Partly |
| Intel Macs | Apple Silicon only. | ✗ No |
A macOS browser that looks and feels like Dia: Chrome's own framework from our patched Chromium with our layer on top (ArdiaCore), an Expo + React Native macOS shell, and Metal shaders reconstructed from Dia's own New Tab effects.
apps/
browser/ Expo + react-native-macos app (UI in src/, Xcode project in macos/)
packages/
ardiacore/ The engine: Chromium 157's framework with our layer (Chrome tabs hosted in our views), JS API in src/
shell/ Native menu bar + shortcuts → JS, windows, SF Symbols, native primitives
shaders/ Metal: New Tab effects + grained OKLab window backdrop
import/ Import from other browsers (bookmarks, history, passwords, Arc spaces)
core/ Pure TS: omnibox input → URL, suggestions, Dia-style breadcrumbs (tested)
Requires Xcode 26+, CocoaPods, Node 24 (pinned in .nvmrc), pnpm 11.
pnpm install
The engine (Chrome's framework, built from our patched Chromium) comes prebuilt: with no local engine build, the app's
build downloads the one matching your checkout's engine/ (about 110 MB, once; Apple Silicon only) and checks it
against packages/ardiacore/prebuilt-engines.tsv. Every release whose engine changed publishes one. If main's engine
is newer than the last release's, work from a release tag (v0.2.30, say), or run
packages/ardiacore/scripts/fetch-engine.sh --nearest to build against the newest prebuilt anyway. Passkeys and saved
cards need our team ID and won't work in a build signed by anyone else.
To change the engine itself (anything under engine/), build it from source: Chrome's framework from our patched
Chromium tree in ~/chromium-build (Chromium 157.0.8103.50 with the patch series in engine/patches;
docs/engine-build.md › "Rebuilding", then engine/chromium/apply.sh,
engine/ardiacore/apply.sh and autoninja -C out/Release_GN_arm64 chrome_framework; the first build takes about 2
hours). The app's build stages it from there when it exists.
pnpm pods
In one terminal, start Metro:
pnpm dev
In another, build and launch the Debug app (on its own data, ~/Library/Application Support/Ardia Dev, or
ARDIA_DATA_DIR):
pnpm macos
Other tasks: pnpm typecheck, pnpm test, pnpm shaders:check (compiles the embedded Metal offline),
scripts/agent/build-app --config Release (a Release .app with a Hermes bytecode bundle in
apps/browser/build-<name>, under the shared build locks; --help).
Signed releases (DMG, Sparkle zip and appcast) are built by the Release workflow with scripts/release.sh, see
docs/releasing.md.
Shortcuts: ⌘T new tab, ⌘L command bar, ⌘W close, ⇧⌘T reopen, ⌘S sidebar, ⌘[ / ⌘] back/forward, ⌘R reload, ⌘1–⌘9 select tab, ⌃Tab cycle.
Dia 1.50 turns this light off along with its rebrand (a painted mark, a single-colour power-up band
and a halo around the bar; docs/dia-spec.md › "1.50 Sunglow"), and so does Ardia. The
reconstruction left the tree with it: git show f2c0e251:packages/shaders/ios/AreaLightView.swift.
This is the beginning of the README. Read the rest at the original. Read the full README ↗