Aplikasi desktop all-in-one untuk urusan harian: tugas, jadwal, keuangan, jurnal, catatan, berkas, unduhan, dan email — dalam satu tempat, dengan asisten AI yang berjalan di laptopmu sendiri.
Landing page · Panduan pengguna · Instalasi · Rilis
Anchoa adalah aplikasi desktop Tauri untuk Arch Linux dan CachyOS yang menggabungkan manajemen tugas, kalender, keuangan, jurnal, catatan, berkas, unduhan, dan email dalam satu antarmuka. Semua data disimpan secara lokal di satu basis data SQLite, sehingga aplikasi tetap berfungsi penuh tanpa koneksi internet maupun akun cloud. Asisten AI-nya berjalan di Ollama di mesin yang sama, sehingga percakapan dan pemrosesan dokumen tidak meninggalkan perangkat. Sinkronisasi antarperangkat tersedia sebagai opsi dan selalu terenkripsi ujung-ke-ujung.
- Semua modul saling tertaut. Tugas, agenda, tagihan, habit, jurnal, dan catatan saling terhubung; satu pencarian (Ctrl+K) menemukan semuanya.
- Asisten AI lokal. Chat berbasis Ollama di laptop; setiap aksi yang diusulkan asisten harus kamu setujui sebelum dijalankan. Model dapat dipilih per tugas.
- Ako, maskot asisten. Hewan laut animasi di panggung asisten (
src/pet/), bereaksi saat mendengarkan, berpikir, dan berbicara. - Asisten suara. Ucapan ke teks dengan whisper.cpp, suara keluar dengan Piper (termasuk suara Bahasa Indonesia), lewat PipeWire.
- Unduhan lengkap. File langsung serta video/audio lewat yt-dlp dan ffmpeg, dengan antrean; ekstensi browser mengirim tautan ke aplikasi.
- Email Gmail. Satu akun Gmail via App Password; ringkasan dan saran balasan dari asisten berjalan lokal.
- Kunci PIN dan backup otomatis. PIN di-hash dengan Argon2id dan divalidasi di sisi Rust; backup database harian disimpan otomatis.
- Sinkronisasi terenkripsi (opsional). Data tersinkron antarperangkat melalui Supabase dengan enkripsi XChaCha20-Poly1305; tanpa sync, tidak ada data yang keluar.
- Baki sistem (Tray). Tetap berjalan di latar belakang saat jendela ditutup sehingga pengingat notifikasi, sinkronisasi, dan antrean unduhan terus bekerja. Klik menu Keluar di baki sistem untuk keluar sepenuhnya.
| Modul | Isi |
|---|---|
| Dashboard | Tugas hari ini, agenda mendatang, ringkasan modul, kontribusi GitHub (opsional) |
| Jurnal | Ide, curhat, catatan singkat, tag, suasana hati; ide bisa dijadikan tugas |
| Catatan | Halaman bertingkat, editor blok Markdown, [[wikilink]] dan tautan balik, sampah, ekspor Markdown |
| Satu akun Gmail: baca, tulis, balas, bintang, arsip, ringkasan dan saran balasan dari asisten | |
| Jadwal | Kalender bulanan dan timeline 8 minggu dari tugas, tagihan, dan Google Kalender (sinkron dua arah) |
| Habit | Centang harian, hari aktif, pengingat, streak, riwayat |
| Health | Berat, tidur, langkah, detak jantung istirahat; tren dan riwayat 14 hari |
| Keuangan | Akun, pemasukan, pengeluaran, transfer, tagihan, batas pengeluaran bulanan |
| Proyek | Kanban, sub-tugas, papan agen kode dengan utas aktivitas |
| Berkas | Jelajah folder lokal, pratinjau, salin, pindah, buang ke Tong Sampah |
| Unduhan | File langsung serta video/audio lewat yt-dlp dan ffmpeg, dengan antrean |
| Library | Film, serial, anime, buku, dan manga: status, progres, rating, ulasan |
| Asisten | Chat dan suara, usulan aksi yang harus disetujui, model per tugas |
| Notifikasi, Profil, Pengaturan | Pengingat, statistik, kunci PIN, model AI, suara, backup, baki sistem, integrasi, sinkronisasi |
Cara memakai setiap modul ada di panduan pengguna.
Repo pacman anchoa (hanya x86_64) berada di https://syharipf.github.io/Anchoa/arch/$arch. Paket dan database repo ditandatangani GPG; kunci publiknya ada di https://syharipf.github.io/Anchoa/arch/anchoa.gpg. Impor kunci, tambahkan repo, lalu pasang:
curl -fsSLO https://syharipf.github.io/Anchoa/arch/anchoa.gpg
sudo pacman-key --add anchoa.gpg
sudo pacman-key --lsign-key "$(gpg --show-keys --with-colons anchoa.gpg | awk -F: '/^fpr/ {print $10; exit}')"
printf '\n[anchoa]\nSigLevel = Required DatabaseRequired\nServer = https://syharipf.github.io/Anchoa/arch/$arch\n' | sudo tee -a /etc/pacman.conf
sudo pacman -Syu anchoa # atau: paru -Syu anchoaPembaruan datang bersama sudo pacman -Syu atau paru seperti biasa. Dependensi runtime (webkit2gtk-4.1, gtk3, libayatana-appindicator) ikut terpasang otomatis. Dependensi opsional:
ollamauntuk asisten AI lokal.gnome-keyringatau KWallet (Secret Service) untuk menyimpan password email dan token.gst-plugins-gooduntuk pemutaran media.
Paket AUR anchoa-bin (paru -S anchoa-bin atau yay -S anchoa-bin) tersedia setelah dipublikasikan ke AUR; jalur utama tetap repo pacman di atas.
Di GitHub Releases juga terlampir tarball anchoa-<versi>-x86_64.tar.gz dan paket anchoa-<versi>-1-x86_64.pkg.tar.zst. Pasang paketnya dengan:
sudo pacman -U ./anchoa-<versi>-1-x86_64.pkg.tar.zstDi mesin yang hanya memakai GPU NVIDIA, jendela bisa kosong karena renderer DMA-BUF WebKitGTK. Anchoa mengatur WEBKIT_DISABLE_DMABUF_RENDERER=1 secara otomatis pada mesin seperti itu; kalau ingin mengubahnya, setel variabel tersebut sendiri sebelum menjalankan anchoa.
Kebutuhan: Rust stable, bun, dan library sistem untuk Tauri di Arch Linux / CachyOS:
sudo pacman -S --needed base-devel webkit2gtk-4.1 libayatana-appindicator librsvg xdotool openssl rustlalu pasang bun dari https://bun.sh.
Dari akar repo:
bun install # pasang dependensi JS
bun tauri dev # jalankan aplikasi dengan hot reloadPerintah lain yang dipakai saat pengembangan:
bun run typecheck # cek TypeScript
bun run test # unit test frontend (bun test, TZ=Asia/Jakarta)
bun tauri build # build rilis; deb di src-tauri/target/release/bundle/deb/
cd src-tauri && cargo clippy --all-targets -- -D warnings # lint backend
cd src-tauri && cargo test # unit test backendUji end-to-end di display virtual (memerlukan Xvfb, xdotool, ImageMagick, dan sqlite3):
bun tauri build --debug --no-bundle
scripts/e2e-smoke.sh src-tauri/target/debug/anchoaLanding page (Astro) ada di landing/:
cd landing
bun install
bun run build # termasuk astro check
bun run test:e2e # test Playwright-
Pasang dan buka Anchoa dari menu aplikasi, atau jalankan
anchoa. Saat pertama dibuka, database lokal dibuat dan Dashboard tampil — tanpa perlu membuat akun Anchoa. -
(Opsional) Asisten AI. Pasang Ollama, jalankan layanannya, lalu unduh model bawaan:
sudo pacman -S ollama sudo systemctl start ollama ollama pull qwen2.5:3b
Buka Pengaturan → Asisten & AI, klik Tes koneksi, lalu pilih model per tugas. Alamat bawaan:
http://127.0.0.1:11434. -
(Opsional) Suara. Di Pengaturan → Suara, pasang model Whisper (ggml-base.bin) untuk ucapan ke teks, lalu Piper TTS dan suara Indonesia · News (
id_ID-news_tts-medium) untuk membacakan jawaban. Binary dan model diunduh oleh aplikasi; perekaman dan pemutaran memakai PipeWire (pipewire-utils). -
(Opsional) Email Gmail. Aktifkan 2-Step Verification, buat App Password di akun Google, lalu isi Alamat Gmail dan App Password di menu Email dan klik Sambungkan. Password 16 huruf disimpan di keyring sistem.
-
(Opsional) Sinkronisasi. Hubungkan akun Google/GitHub lewat Pengaturan → Sinkron & data untuk menyinkronkan data antarperangkat secara terenkripsi.
![]() |
![]() |
| Pratinjau (kartu sosial dari landing page) | Lembar desain Ako, maskot asisten (aset resmi) |
Tangkapan layar dan ilustrasi lain ada di landing page.
Anchoa adalah modular monolith: satu proses aplikasi, satu basis data SQLite, tanpa layanan terpisah.
- Backend: Tauri 2 (Rust) di
src-tauri/. Frontend tidak pernah menyentuh database; setiap aksi adalah perintah Rust, dansrc/api.tsadalah satu-satunya pemanggilinvoke(). - Frontend: React 19 + TypeScript + Vite + Tailwind di
src/. - Model data: setiap hal adalah satu baris di tabel
items, dengan tabel perpanjangan per modul. ID memakai UUIDv7, waktu disimpan sebagai epoch milidetik UTC, dan penghapusan bersifat soft (deleted_at) — pilihan yang membuat sinkronisasi multi-perangkat tidak butuh migrasi besar. - Batas hari ("hari ini", "terlambat") dihitung di Rust, dalam waktu lokal. Uang disimpan sebagai bilangan bulat satuan terkecil, bukan float.
flowchart LR
subgraph FE ["React + TypeScript (src/)"]
UI[Modul UI]
API[api.ts]
end
subgraph BE ["Tauri 2 · Rust (src-tauri/)"]
CMD[Perintah Rust]
DB[("SQLite — anchoa.db")]
AST[Asisten lokal<br/>Ollama · whisper.cpp · Piper]
SYNC[Sync terenkripsi<br/>XChaCha20-Poly1305]
end
UI --> API --> CMD
CMD --> DB
CMD --> AST
CMD --> SYNC
- Tetap di laptopmu: seluruh data aplikasi (tugas, keuangan, jurnal, catatan, pengaturan) berada di SQLite lokal pada
~/.local/share/io.github.syharipf.anchoa/anchoa.db, beserta backup di folderbackups/di direktori yang sama. - Backup: dibuat otomatis saat aplikasi dibuka (maksimal satu per hari), dengan rotasi 7 berkas terbaru bersama backup manual. Backup hanya menyalin database SQLite — berkas asli, hasil unduhan, dan model suara tidak ikut.
- Kredensial: PIN di-hash dengan Argon2id dan diverifikasi di sisi Rust; App Password Gmail disimpan di keyring sistem, bukan di database.
- Yang keluar: email dan unduhan tentu berkomunikasi dengan sumbernya masing-masing (Gmail, situs tujuan). Model dan suara asisten diunduh sekali saat dipasang; setelah itu percakapan dan pemrosesan suara berjalan sepenuhnya lokal.
- Sinkronisasi bersifat opsional dan terenkripsi ujung-ke-ujung (XChaCha20-Poly1305) sebelum data dikirim ke Supabase.
- Batasan: database dan backup belum dienkripsi saat disimpan di disk; enkripsi at-rest direncanakan untuk fase berikutnya.
Pengembangan berjalan per fase; setiap fase punya spec di docs/superpowers/specs/ dan rencana implementasi per PR di docs/superpowers/plans/, dengan isu GitHub yang dikelompokkan dalam milestone. Status saat ini: tersedia untuk Arch Linux dan CachyOS (x86_64). Fedora/RPM dan mobile ditunda; fokus pengembangan ada di Arch. Fitur yang tersedia mengikuti kode, bukan rencana.
Tidak ada CONTRIBUTING.md di repo ini; alur kerjanya sebagai berikut:
- Buat cabang
feat/<nomor-isu>-<slug>darimain.mainadalah branch terlindungi — semua perubahan lewat pull request dengan CI hijau. - Kembangkan dengan TDD, gunakan commit kecil dalam format Conventional Commits.
- Sebelum membuka PR, jalankan seluruh pemeriksaan:
bun run typecheck,bun run test,cargo clippy --all-targets -- -D warnings,cargo test, dan uji E2E Xvfb (lihat Instalasi). Sertakan bukti (output test, tangkapan layar) danCloses #Ndi badan PR. - Setiap PR dianalisis SonarCloud; quality gate gagal pada temuan keamanan atau bug baru.
Tidak ada berkas lisensi yang diterbitkan di repositori ini. Seluruh kode dan aset hak cipta milik penulis (all rights reserved) sampai sebuah lisensi dirilis. Jika kamu ingin memakai kode ini, buka isu untuk berdiskusi terlebih dahulu.
Anchoa berdiri di atas proyek-proyek terbuka berikut:

