Autonomous AI File Management & Assistant CLI
AI-powered file management menggunakan Gemini Web RPC dan react-agent-js
- Autonomous File Manager — Menganalisis, merapikan, memindahkan, menyalin, dan menghapus file atau folder secara mandiri melalui ReAct agent loop.
- Natural Language Command — Kelola file menggunakan bahasa natural, tanpa perlu menghafal perintah CLI yang kompleks.
- ReAct Agent Loop — Agent dapat melakukan reasoning, memilih tool yang sesuai, menjalankan aksi, membaca hasilnya, lalu melanjutkan proses hingga tugas selesai.
- Gemini Web Client RPC — Terintegrasi dengan Gemini Web RPC untuk kemampuan AI tanpa konfigurasi API key berbayar.
- Safety Confirmation — Aksi berisiko seperti penghapusan atau pemindahan file dalam jumlah besar memerlukan konfirmasi eksplisit sebelum dijalankan.
- Rich Terminal Rendering — Respons AI dalam format Markdown dirender secara rapi di terminal dengan Chalk, structured output, code highlighting, dan Boxen.
- Interactive CLI Interface — Pengalaman CLI interaktif menggunakan Inquirer, Ora spinner, dan terminal styling.
Sebelum memulai, pastikan sistem telah memiliki:
- Node.js versi 18.0.0 atau lebih baru
- Akun Google dengan sesi Gemini Web yang valid
- Cookie sesi Gemini Web
git clone <repository-url>
cd gemini-filesnpm installSalin file template environment:
cp .env.example .envKemudian isi file .env dengan cookie sesi Gemini Web:
GEMINI_SESSION_COOKIE=your_cookie_herePenting: Jangan membagikan file
.envatau cookie sesi kepada orang lain. Pastikan.envtidak ikut ter-commit ke repository.
Langkah ini bersifat opsional. Jalankan jika ingin menggunakan perintah gemini-files dari direktori mana pun:
npm linkSetelah instalasi selesai, jalankan:
gemini-filesAsisten akan memulai sesi interaktif dan siap menerima instruksi dalam bahasa natural.
Menganalisis direktori
"Cek isi folder ini dan buat ringkasan jenis filenya"
Merapikan file secara otomatis
"Rapikan semua file gambar dan dokumen ke folder masing-masing"
Membersihkan file
"Hapus semua file log dan temporary di folder dist"
Mencari file
"Cari file laporan yang dibuat minggu lalu"
Memindahkan file
"Pindahkan semua file PDF ke folder Documents"
Tool organize_files secara bawaan mengelompokkan file berdasarkan ekstensi berikut:
| Kategori | Ekstensi yang Didukung |
|---|---|
| Images | .jpg, .jpeg, .png, .gif, .svg, .webp |
| Documents | .pdf, .docx, .doc, .txt, .xlsx, .pptx, .md |
| Audio | .mp3, .wav, .flac, .aac, .ogg |
| Video | .mp4, .mkv, .avi, .mov |
| Archives | .zip, .rar, .7z, .tar, .gz |
| Code | .js, .ts, .py, .html, .css, .json, .cpp, .java |
gemini-files/
├── bin/
│ └── gemini-files.js # Entry point executable untuk global CLI
├── src/
│ ├── index.js # Bootstrap & inisialisasi aplikasi
│ ├── agent/
│ │ └── agent-core.js # ReAct loop, tool registry & system prompt
│ ├── services/
│ │ └── gemini-web.js # Integrasi Gemini Web RPC
│ ├── tools/
│ │ └── file-tools.js # Tool operasi filesystem
│ ├── ui/
│ │ └── cli.js # Interactive CLI interface
│ └── utils/
│ └── markdown.js # Markdown parser & terminal renderer
├── .env.example # Template environment variables
├── package.json # Metadata & dependensi proyek
└── README.md # Dokumentasi proyek
gemini-files dapat menjalankan operasi yang memengaruhi filesystem, termasuk memindahkan dan menghapus file. Untuk mengurangi risiko kehilangan data, aksi yang berpotensi merusak akan memerlukan konfirmasi pengguna sebelum dieksekusi.
Tetap periksa instruksi dan aksi yang akan dijalankan sebelum memberikan konfirmasi.
Secara umum, agent bekerja menggunakan pola ReAct (Reason → Act → Observe):
- Reason — AI menganalisis permintaan pengguna dan menentukan langkah yang diperlukan.
- Act — Agent memilih dan menjalankan tool filesystem yang sesuai.
- Observe — Agent membaca hasil dari tool yang dijalankan.
- Repeat — Proses berulang hingga tugas selesai atau membutuhkan konfirmasi pengguna.
- Respond — Hasil akhir disampaikan melalui terminal dengan Markdown rendering.
Proyek ini didistribusikan di bawah lisensi MIT.
Dikembangkan oleh Mada Putra Adhadriyanto.