Overview

What is AIaW

AI as Workspace — a Quasar 2 + Vue 3 + TypeScript AI client. The fork at lingion/AIaW is rooted at upstream NitroRCr/AIaW with cloud-sync features and the upstream demo services stripped (DexieDBURL = undefined in src/utils/config.ts, all web-service URLs come from .env.app at build time and can be replaced).

This document is written from the actual source tree, not from README.md or AIaW's official docs site. Every command, file path, and value below was read from ~/Desktop/blog/aiaw/.

Repo at a glance

FieldValueSource
name / versionaiaw 2.0.8.9package.json
UpstreamNitroRCr/AIaW (productName "AI as Workspace")package.json author
App id (Capacitor)app.aiaw.glasscapacitor.config.ts
App id (Tauri)app.aiawsrc-tauri/tauri.conf.json
Quasar mode listSPA, PWA, Capacitor (Android, iOS), Tauri, SSR (in code, default SPA)quasar.config.js
Boot filesi18n, unocss, global-componentsquasar.config.js
FrameworkQuasar 2.18 + Vue 3.5 + Pinia 2 + vue-router 4 + vue-i18n 11package.json
CSS pipelineUnoCSS 0.62 (preset-rem-to-px) + Quasar SCSSuno.config.ts, quasar.config.js
Build target (browser)es2022, firefox115, chrome115, safari15; node node20quasar.config.js
Node engines^24 || ^22 || ^20 || ^18package.json
Package managerpnpm (only sharp allowed in pnpm.onlyBuiltDependencies)package.json
Dev port (SPA)9005; PWA 9006quasar.config.js

Top-level layout (real paths)

aiaw/
|-- android/                  Capacitor 7 Android project (Gradle, app.aiaw.glass)
|-- src/                      Vue 3 SPA source (the main app)
|   |-- boot/                 i18n / UnoCSS / global-components setup
|   |-- components/           reusable Vue SFCs (assistant-item, model-item, etc.)
|   |-- composables/          use-call-api, use-dialog-chain, use-create-dialog, ...
|   |-- css/                  global SCSS
|   |-- i18n/                 en-US / zh-CN / zh-TW (per-language TS files)
|   |-- layouts/              MainLayout + workspace drawer
|   |-- pages/                route-level pages (WorkspacePage, SettingsPage, ...)
|   |-- router/               routes.ts + index.ts
|   |-- stores/               Pinia stores (workspaces, providers, plugins, ...)
|   |-- utils/                db.ts, types.ts, values.ts, plugins/, platform-api.ts
|   '-- views/                sub-route views (DialogView, AssistantView, ...)
|-- src-tauri/                Tauri 2 desktop wrapper
|-- src-capacitor/            Capacitor-specific bridge package.json
|-- src-pwa/                  PWA manifest + service worker
|-- src-backend/              (empty stub - fork has no server)
|-- docs/                     VitePress user docs (separate site)
|-- scripts/                  sync-version, generate-app-icons, sync-android-shell, etc.
|-- public/                   static assets (avatars, fonts, icons, json)
|-- resources/                OS-level icons (Android .png, Tauri .icns)
|-- quasar.config.js          Quasar CLI config
|-- capacitor.config.ts       Capacitor CLI config
|-- uno.config.ts             UnoCSS config
|-- tsconfig.json
'-- .env.app                  upstream demo URLs (DEXIE/LITELLM/BUDGET/SEARXNG)

What is NOT in this fork

  • No src-backend/ server code — the directory exists but is empty. The fork is client-only.
  • No cloud sync: src/utils/config.ts hard-codes export const DexieDBURL = undefined and the comment says "Cloud sync is stripped by default in this fork. Re-enable only if you explicitly wire your own Dexie Cloud URL."
  • No .env file is checked in. .env.app ships the upstream demo URLs but the fork ignores them at runtime because every service path (DocParse, SearXNG, CorsFetch, Litellm, Budget, Dexie) is gated behind the matching *BaseURL const in src/utils/config.ts, all of which return undefined unless the env var is set at build time.
  • No CI/CD customized for this fork.

License

Repo ships with upstream LICENSE (35 KB text file). Author is upstream NitroRCr; this fork is a personal deployment with cloud services stripped.

See also: Technical post: AIaW Mobile Fork — deep dive into 8 new files, Camera + LocalFs + Pyodide + PDF.js + Cerebras/MiniMax integration.