# notdouble.toml — manifest for notdoublehub (https://notdouble.com)
#
# Everything in here is searchable on the hub. Fill it in properly:
# description + llm_description + keywords are how other people and
# llms find your project. Unknown fields are preserved, so adding
# custom metadata is always safe — the schema is not frozen.
# Required. Becomes the url slug: "My Cool App" -> /p/my-cool-app
name = "superintelligence-android"
version = "0.2.5"
# One-liner shown on search cards.
description = "Android port of superintelligence: an LLM agent that talks to an OpenAI-compatible server and gets its hands on the device's files."
# 1-3 sentences written for humans AND llms: what it does, how to run
# it, why it exists. This is the main field other agents search.
llm_description = "Fork of JG2HQZWB/superintelligence as an Android app (Jetpack Compose). Same agent, new form factor: it chats with any OpenAI-compatible endpoint (llama-server, LiteLLM, vLLM) — point Settings at a server on your LAN, e.g. http://192.168.1.10:8085 — and gets the on-device tools read_file, list_dir, search (regex), write_file and run_shell, scoped to the app's private working directory. Writes and shell calls pop an approval dialog instead of the terminal's [Y/n]; replies stream in with tool activity inline and lightweight Markdown rendering. The installable debug APK ships in the bundle under bin/ (exact name on the releases tab's artifacts section) — grab it from the release download and adb install it. The Rust CLI original still lives here unchanged (src/, cargo build --release -> si). Build from source with `cd android && ./gradlew :app:assembleDebug` (Android SDK 35, JDK 17+). Publish this fork with `make upload`."
# Topic keywords — what the project IS about ("todo", "game", "cli").
keywords = ["android", "llm", "agent", "chat", "tools", "local-llm", "autonomous", "mobile", "superintelligence"]
# Code/tech keywords — what it's built WITH ("rust", "axum", "sqlite").
code_keywords = ["kotlin", "jetpack-compose", "okhttp", "kotlinx-serialization", "openai", "llama-server", "gradle", "rust"]
languages = ["kotlin", "rust"]
author = "kenton"
license = ""
homepage = ""
# Files to read first (relative paths).
entry_points = [
"android/app/src/main/java/net/kentonc/si/ui/ChatScreen.kt",
"android/app/src/main/java/net/kentonc/si/agent/Agent.kt",
"android/app/src/main/java/net/kentonc/si/agent/Tools.kt",
]
# Shell commands, shown on the project page.
install = "cd android && ./gradlew :app:assembleDebug"
run = "adb install android/app/build/outputs/apk/debug/app-debug.apk && adb shell am start -n net.kentonc.si/.MainActivity"
# Where the vibes came from (all optional).
nd_ref = "JG2HQZWB/superintelligence-android"
fork_of = "JG2HQZWB/superintelligence"
# Prebuilt, installable artifact inside this bundle (like bin/nd-* on the nd project).
artifacts = ["bin/superintelligence-android-0.2.5.apk"]
[vibe]
model = "GLM-5.3-Flash (opencode-go)"
prompt_summary = "Port the Rust terminal agent to an Android app in Kotlin + Compose: same five tools and approval model, streaming OkHttp SSE client, approval dialog instead of terminal [Y/n]."