Friday is a your personal local AI assistant which runs efficienltly even in a 8GB Macbook Air. Private by design so works 100% offline. No subscriptions, No ratelimits.
- Zero Setup needed. Install and get started right away.
- Local-first by default: chats, prompts, settings, and attached files stay on-device.
- Supports toolcalling including web search and custom knowledgebase out of the box.
- Practical multimodality: text/code files, PDFs, DOCX, images, and audio can all be attached in the main chat flow.
- Runs Google Gemma models using Google's own llm runtime engine natively for superfast performance.
Friday currently supports macOS on Apple Silicon (M-series) only.
Support for other platforms may be added in future releases.
- Tauri
- LiteRT-LM Runtime
- Google's Gemma Models
- SearXNG for Web Search
- embed_anything
- Lance DB vector storage
The app ships a small built-in model registry in src-tauri/src/sidecar.rs.
| Model | Download | Minimum Recommended RAM | Context | Recommended Output | Capabilities |
|---|---|---|---|---|---|
Gemma 4 E2B |
~2.41 GB | 4 GB | 131,072 | 4,096 | text, image, audio, thinking |
Gemma 4 E4B |
~3.40 GB | 8 GB | 131,072 | 8,192 | text, image, audio, thinking |
Friday defaults to Gemma 4 E2B on most systems and to Gemma 4 E4B when total RAM is above 16 GB.
For local development you need:
- Node.js
24.1.0from.nvmrcor a compatible version - npm
- Rust toolchain
- Tauri 2 system prerequisites for your OS
- macOS Apple Silicon
Friday does not require a separately installed system Python runtime for the shipped app flow.
npm installnpm run tauri devBuild the frontend bundle:
npm run buildBuild the desktop app:
npm run tauri buildnpm run test:run
npm run typecheck
cargo check --manifest-path src-tauri/Cargo.toml
cargo test --manifest-path src-tauri/Cargo.toml
npm run cargo:clippy
npm run checknpm run check is the default local validation flow. CI and release workflows additionally run npm run cargo:clippy.
- Setup wizard with user display-name capture
- Session sidebar with create/select/delete flows
- Automatic chat title updates after the first user message
- Drawer-based session navigation on narrow layouts
- Streaming chat pane with assistant answer and thought streaming
- Drag-and-drop and file-picker attachment flow
- Audio recording button when microphone capture is available
- Reply language selector
- Web search toggle
- Thinking toggle
- Markdown answers with code-copy controls and KaTeX math
- Collapsible reasoning panel when a reply includes thinking content
- Connection/privacy status pills and inline tool-activity status text
- Settings drawer for token budget, theme selection, and model switching/downloads
daksha-ai/
├── README.md
├── AGENTS.md
├── package.json
├── vite.config.ts
├── .github/
│ └── workflows/
├── src/
│ ├── App.tsx
│ ├── main.tsx
│ ├── styles.css
│ ├── components/
│ ├── hooks/
│ ├── test/
│ ├── theme/
│ └── types.ts
└── src-tauri/
├── build.rs
├── Cargo.toml
├── tauri.conf.json
├── migrations/
├── python_tests/
├── resources/
└── src/
The repo uses a tag-driven macOS release workflow in .github/workflows/release.yml.
Current release behavior:
- any pushed tag triggers the release workflow
- the workflow builds and uploads the macOS Apple Silicon app assets to the GitHub release for that tag
- GitHub release notes are generated automatically
- tags containing
-are marked as prereleases (for example:v0.2.0-rc.1) - releases can fall back to ad-hoc signing when Apple signing secrets are missing
- Apple Silicon is the supported packaging target today because
src-tauri/build.rsonly vendors the managed runtime formacos/aarch64
Accepted tag formats:
v0.2.00.2.0
- Create a new separate branch and only add PR's for the dev branch.
- Use
npm run tauri devandnpm run tauri buildso the frontend hooks defined insrc-tauri/tauri.conf.jsonstay in sync. - There is no root
Cargo.toml; use--manifest-path src-tauri/Cargo.toml. - When changing a Tauri command or payload, update both Rust handlers and the matching TypeScript types in
src/types.ts. - Model/runtime changes usually span
src-tauri/build.rs,src-tauri/src/sidecar.rs,src-tauri/src/python_runtime.rs, and the bundled resource tree undersrc-tauri/resources/.
