個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Condx on your phone (Android): threads with your agents, approvals, voice notes and notifications.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Condx on the phone: pair it with your Mac and approve (or reject) what's waiting for your approval.
Native Shell (Rust); the design is in Condx's docs/design/cloud.md (phase C4).
src/sync.rs: pairing, the local-first engine (localfirst-core) and signed decisions.src/secure.rs: the phone's identity in the Keychain (iOS) or the Keystore (Android).src/lib.rs: the screens (pair → confirm on the Mac → approvals).src/theme.rs: the desktop app's theme (tokens, flat cards, status dots, buttons), light and dark;
the fonts (IBM Plex Sans, JetBrains Mono, OFL) are in assets/fonts.nsh run --target android # emulator (adb reverse the Cloud's port for a local backend)
scripts/ios-sim-install.sh # iOS simulator, with the Keychain entitlement
CONDX_DAEMON_URL=http://127.0.0.1:4799 CONDX_APP_TOKEN=… cargo test --test live -- --ignored
The live tests need a throwaway condxd linked to a throwaway Condx Cloud, never a real one.
scripts/android-apk.sh builds an installable APK by hand: arm64 only (half the size), 16 KB pages
(Android 15+ warns if the library is not aligned) and signed with the debug keystore. nsh 0.2 cannot
pick ABIs or linker flags: they are passed through RUSTFLAGS and x86_64 is removed from the APK afterwards.
scripts/android-apk.sh # → .nsh/out/condx-mobile-arm64.apk
It needs nsh, the Android SDK with the NDK and build-tools, and the debug keystore
(~/.android/debug.keystore); ANDROID_HOME, ANDROID_NDK_HOME and JAVA_HOME are taken from the
environment, with macOS defaults. Install the APK on the phone with adb install.
An app written in Rust: its UI is src/lib.rs, and nsh.json names the root component ("root": "App").
nsh run # this machine's backend; --target ios, android, web, macos, linux or windows
nsh test # App.test.tsx: the root tested from TypeScript, headless; --target to run it on a platform
nsh test nsh.json --trace # headless: what the root mounts, and the time of each commit
nsh package --target web # or ios, android, macos, linux, windows
nsh run and nsh package mount the root on every platform, the browser included, without QuickJS: the app is Rust
and native code from start to end (in the browser, with NSH's page script). Rust edits rebuild and restart the app.
cargo run
This starts the root directly on the machine's native desktop backend: GTK 4 on Linux, AppKit on macOS, Win32 on Windows. Install the backend's development libraries before building.
The nsh commands build the app's runners from the NSH crates Cargo.toml depends on: crates.io's at the version of
the nsh you run (keep the nsh-* dependencies at that version when you upgrade nsh), or an NSH checkout's by path.
TSX screens can use the Rust components and modules, with hot reloading for the TSX. The crate's set,
#[native_module("condx-mobile/native")] in src/lib.rs, already exports App. Add an App.tsx:
import { mount } from "nsh";
import { App } from "condx-mobile/native";
mount(App);
then run it with nsh run App.tsx (tsconfig.json is there for it and the test): a named TSX entry
runs on QuickJS, while nsh run alone keeps running the Rust root. The first nsh build App.tsx writes the TypeScript
declarations of condx-mobile/native into .nsh/types. Register more with registry.register::<…>() (components),
registry.module::<…>() and registry.class::<…>().
NSH-generated files stay in .nsh/: runner sources in .nsh/rust/ and default packages in .nsh/out/.
Cargo keeps its normal target/ directory and respects your existing CARGO_TARGET_DIR.