Smara-CLI

module
v1.21.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 1, 2026 License: MIT

README ยถ

Smara CLI ๐ŸŒ€

Autonomous Multi-Agent Terminal v1.20.11

Go Version License Latest Release Documentation

Smara (Sanskerta: เคธเฅเคฎเฅƒเคคเคฟ โ€” Ingatan) adalah terminal pintar berbasis Go yang mengorkestrasi agen AI otonom dengan memori tim yang tersinkronisasi dan integrasi MCP (Model Context Protocol).


๐Ÿ–ฅ๏ธ Smara Web Preview

Smara Web Dashboard


โœจ Fitur Utama

  • Multi-Agent System: Arsitektur Supervisor-Worker untuk pendelegasian tugas yang kompleks.
  • 3 Mode Agen:
    • ask (๐Ÿ’ฌ): Tanya-jawab cepat tanpa tools.
    • rush (โšก): Eksekusi cepat, langsung bertindak menggunakan tools.
    • plan (๐Ÿ“‹): Membuat rencana dan meminta persetujuan sebelum eksekusi.
  • ๐ŸŽจ Crush TUI Design: Antarmuka terminal ultra-minimalis dengan palet warna Pastel Green yang premium.
  • ๐ŸŽฌ Live Generate Animation:
    • Phase Tracking Pipeline: Visual pipeline fase otomatis (Thinking โ†’ Analyzing โ†’ Exploring โ†’ Generating) dengan deskripsi real-time.
    • Animated Thinking: Spinner dots interaktif dengan rotasi fase.
    • Real-time Stats: Timer elapsed dan statistik penggunaan token (In/Out) yang persisten.
    • Streaming Cursor: Feedback visual real-time saat teks sedang di-generate.
    • Tool Call Visualization: Tampilan langsung saat agen mengeksekusi tool (โ–ธ) dan menerima hasil (โ—‚).
  • ๐Ÿ”€ Message Selection & Clipboard: Ctrl+S untuk menyeleksi pesan historis, Enter/C untuk copy ke clipboard. Ctrl+V untuk paste dari clipboard.
  • ๐ŸŒ MCP Auto-Discovery: Auto-load MCP servers dari konfigurasi Windsurf IDE, OpenCode, dan file konfigurasi Smara-native secara paralel.
  • ๐Ÿ›œ Remote MCP Support: Koneksi ke MCP server remote via SSE/WebSocket (mcp.NewRemoteClient).
  • ๐Ÿงฉ Skill Ecosystem v3 โ€” Skill Tree & Analytics:
    • Hierarchical skill tree dengan parent-child dan dependency edges.
    • Execution tracker (SQLite) untuk logging run, stats, timeline, dan success rate.
    • Skill Dashboard: visualisasi top skills, struggling skills, dan recent activity.
    • Interactive dependency graph (React Flow) untuk visualisasi hubungan antar skill.
    • Auto-Refinement Engine: usulkan perbaikan skill berdasarkan eksekusi history & feedback.
  • ๐Ÿ“ SSH File Transfer: Upload/download file dan direktori via SFTP/SCP langsung dari CLI.
  • Platform Integration: Jalankan Smara sebagai bot di Telegram, Discord, dan WhatsApp.
  • Multi-Provider LLM: Mendukung Ollama (local), Anthropic, OpenAI, dan OpenRouter.
  • ๐Ÿ“ฆ Workspace Management: Isolasi proyek, memori, dan sesi antar ruang kerja yang berbeda.
  • ๐Ÿง  Smart Memory v2: Hybrid Search, Versioning, dan Categorization untuk basis pengetahuan agen.
  • ๐Ÿ“Š Dashboard Monitoring: TUI real-time untuk memantau metrik platform, LLM, dan MCP.
  • ๐Ÿ–ฅ๏ธ SSH Remote Control: Kelola VPS/Server langsung dari agen โ€” ssh_exec, ssh_view_file, ssh_list_dir sebagai built-in agent tools.
  • ๐Ÿ‘ค User Profile: Profil adaptif pengguna (verbosity, risk tolerance, primary domains) yang diinject ke system prompt.
  • โฐ Nudge System: Scheduled prompts/reminders dengan ekspresi cron untuk tugas rutin.
  • ๐Ÿ›ก๏ธ Two-Step Safety: Plan Mode (read-only) vs Build Mode (read-write) dengan Auto-Revert jika eksekusi gagal.
  • ๐Ÿ” LSP Integration: Language Server Protocol untuk Go, TypeScript, Python, dan Rust.
  • ๐Ÿ“œ Dedicated Audit Log: Logging terstruktur JSON Lines untuk semua tindakan agen.
  • ๐Ÿ•ธ๏ธ Graphify โ€” Knowledge Graph: Parse codebase Go menjadi knowledge graph, simpan di SQLite, query dengan natural language, dan inject konteks graph ke system prompt agen secara otomatis. Export ke JSON/SVG/GraphML/Neo4j.
  • ๐Ÿงฌ Memory Graph โ€” Memori Saling Terhubung: Setiap memori bisa di-link satu sama lain dengan relasi (refines, supports, follows, dst.) dan bobot. Auto-link Smart Engine otomatis pilih mode: ๐Ÿง  semantic (cosine similarity embedding) atau ๐Ÿ“ lexical fallback (Jaccard token overlap dengan stopword EN+ID) โ€” jalan untuk semua provider. Visualisasi interaktif via tab Graph di Smara Web (React Flow) atau standalone smara memory graph (vis-network).
  • ๐Ÿ–ผ๏ธ Clipboard Image & Vision Tools: Ctrl+V di TUI ambil gambar dari clipboard sistem (X11/Wayland/macOS/Windows), simpan ke ~/.smara/clip-images/, dan inject [image:/path] ke prompt. Built-in tool analyze_image ekstrak metadata + OCR (tesseract); clip_paste_image & clip_copy_image untuk agent.
  • ๐Ÿง  Adaptive Iteration Budget: Batas eksekusi tool dinamis per mode (ASK 5, RUSH 15, WORKFLOW 30, dst.) dengan auto-extension saat model produktif dan stuck-loop detector kalau tool yang sama dipanggil berulang. Configurable via agent_max_iterations.
  • Auto-Update: Sistem pembaruan otomatis bawaan menggunakan perintah smara update.
  • ๐ŸŒฅ๏ธ Cloud Memory: Sinkronisasi memori local-first antar device/workspace via Turso/libSQL embedded replica, dengan conflict policy, audit log redacted, dan mode headless CI.
  • ๐Ÿงพ Run History & Replay: Semua workflow dapat dicatat sebagai run terstruktur, ditampilkan via smara run history, dan diulang dengan smara run replay.
  • ๐Ÿงช Eval Suite: smara eval run untuk smoke/evaluasi provider aktif dengan output human-readable atau JSON.
  • ๐Ÿ›ก๏ธ Policy CLI: smara policy untuk allow/ask/deny tool automation berdasarkan risk, action, dan target.
  • โฑ๏ธ Scheduler & Sharing: smara schedule untuk job lokal terjadwal dan smara share untuk export/import artifact berbagi.
  • ๐Ÿ’พ Memory Save Compatibility: smara memory save <content> kembali tersedia untuk backward compatibility local/cloud memory.

๐ŸŒฅ๏ธ Cloud Memory

Cloud Memory membuat database memori Smara tetap local-first (baca/tulis tetap cepat secara lokal) sambil tersinkronisasi ke Turso/libSQL untuk multi-device.

Quick start:

smara memory cloud login
smara memory cloud enable
smara memory cloud status

Multi-device: jalankan smara memory cloud login lalu smara memory cloud enable di device kedua; Smara akan memakai database cloud workspace yang sama bila sudah ada.

Workspace isolation: setiap workspace dipetakan ke database cloud terpisah. Contoh:

smara workspace create client-x
smara memory cloud workspaces

Gunakan smara workspace create client-x --local-only untuk skip provisioning cloud saat offline/kuota penuh.

Headless/CI mode:

export SMARA_CLOUD_TOKEN=...
export SMARA_CLOUD_ORG=...
export SMARA_CLOUD_REGION=sin
smara memory cloud login --headless
smara memory cloud enable

Contoh Docker minimal: set env vars di container, mount ~/.smara sebagai volume, lalu jalankan command di atas saat bootstrap.

Conflict policy tersedia di config cloud_memory.conflict_policy:

  • lww โ€” default, last-write-wins deterministik.
  • manual โ€” konflik ditahan untuk review via smara memory cloud conflicts.
  • archive-loser โ€” pemenang dipakai, versi kalah tetap diarsipkan.
  • merge-content โ€” gabungkan konten catatan bebas.

Privacy & security: token tidak disimpan di YAML config; kredensial memakai keyring, env, atau fallback file 0600. Audit log otomatis redact Bearer/JWT/token. Konten memori dan embedding tetap di database Turso milik user; embedding default tetap lewat Ollama lokal.

Troubleshooting cepat:

  • Keyring tidak tersedia โ†’ Smara fallback ke ~/.smara/cloud-creds.json mode 0600.
  • Replica bermasalah โ†’ nonaktifkan cloud, backup ~/.smara/memory.db, lalu enable ulang untuk bootstrap.
  • Kuota penuh โ†’ status tampilkan quota; kurangi data/cleanup atau naikkan kuota provider.

๐ŸŽจ TUI Experience

Smara CLI menggunakan sistem desain Crush yang mengutamakan estetika dan kejelasan informasi:

  • Pastel Palette: Dominasi warna hijau muda (#bef264) pada background gelap untuk kontras tinggi dan kelelahan mata rendah.
  • Harmonica Physics: Sidebar dan transisi UI menggunakan animasi spring physics yang organik.
  • Completion Footer: Detail model dan performa (durasi, token) disematkan rapi di bawah setiap respons agen.
  • Phase Pipeline: Progress bar visual yang menampilkan fase kognitif agen secara real-time.
  • Fade Wave Animation: Efek gelombang transisi antar fase untuk pengalaman visual yang halus.

๐Ÿš€ Instalasi Cepat

Linux / macOS
curl -fsSL https://raw.githubusercontent.com/gede-cahya/Smara-CLI/main/install.sh | sh
Windows (PowerShell)
irm https://raw.githubusercontent.com/gede-cahya/Smara-CLI/main/install.ps1 | iex

๐Ÿ“– Panduan Penggunaan

Untuk melihat panduan interaktif langsung di terminal, jalankan:

smara guide
1. Login ke Provider

Gunakan perintah login untuk menyimpan API key secara aman:

smara login
2. Pilih Model
smara provider select

๐Ÿ“ฆ Workspace & Proyek

Gunakan workspace untuk memisahkan konteks antar proyek:

smara workspace create "Project X"
smara workspace use "Project X"
smara workspace list

๏ฟฝ๏ธ Graphify โ€” Knowledge Graph

Generate and query knowledge graphs from Go codebases for deep structural understanding.

# Parse codebase and store graph
smara graphify init ./cmd --name smara-cmd

# Query graph with natural language
smara graphify query "auth flow" --name smara-cmd --depth 2

# Find shortest path between nodes
smara graphify path "A" "B" --name smara-cmd

# Explain a node and its neighborhood
smara graphify explain "NodeID" --name smara-cmd --depth 1

# Export graph
smara graphify export --name smara-cmd --format json     # JSON
smara graphify export --name smara-cmd --format svg       # SVG
smara graphify export --name smara-cmd --format graphml   # GraphML
smara graphify export --name smara-cmd --format neo4j     # Neo4j Cypher

# List & manage stored graphs
smara graphify list
smara graphify delete smara-cmd

When the agent detects a codebase question, it auto-injects the relevant subgraph into the system prompt for context-aware answers.


๏ฟฝ๏ธ SSH Remote Control (Agent Tools)

Agen dapat mengeksekusi perintah di VPS/Server langsung dari percakapan:

# Tambah host SSH
smara ssh add-host prod --host 192.168.1.1 --user ubuntu --key ~/.ssh/id_rsa

# Eksekusi perintah remote
smara ssh exec prod "docker ps -a"

# Sesi SSH interaktif
smara ssh connect prod

# Upload file ke remote
smara ssh upload prod ./local-file.txt /home/ubuntu/

# Download file dari remote
smara ssh download prod /var/log/app.log ./logs/

# Generate key pair
smara ssh keygen --name deploy-key --type ed25519

# Riwayat eksekusi & transfer
smara ssh logs --limit 20
smara ssh transfer-logs --limit 20

Saat smara start, agen otomatis mendapatkan konteks semua host SSH yang tersimpan di system prompt.


๐Ÿ“Š Monitoring Dashboard

Pantau aktivitas bot dan performa agen secara real-time:

smara dashboard

Gunakan flag --once untuk snapshot cepat atau --refresh 5s untuk mengatur interval.


๏ฟฝ Skill Ecosystem

Kelola reusable automation skills dan marketplace:

# Jalankan skill tersimpan
smara skill run deploy-backend

# Install skill dari URL
smara skill install https://example.com/skills/deploy.json

# Buat skill baru dari stdin (JSON atau Markdown)
smara skill create deploy-backend --format json

# Cari skill di registry
smara skill search "deploy"

# Info detail skill
smara skill info deploy-backend

# Lint/validasi skill lokal (exit code non-zero saat error)
smara skill lint
smara skill lint deploy-backend --format json
smara skill validate deploy-backend --allow-tool my_mcp_tool
smara skill validate --tool-registry ./tools.json

# Preview/diff/apply refinement skill dengan auto-lint
smara skill refine deploy-backend --preview
smara skill refine deploy-backend --diff
smara skill refine deploy-backend --proposal ./proposal.json --apply
smara skill refine deploy-backend --proposal ./proposal.json --preview --format json

# Publikasikan ke registry
smara skill publish deploy-backend

# Sync cache registry
smara skill registry sync

# Skill Tree & Analytics
smara skill tree                    # Tampilkan hierarki skill tree
smara skill stats deploy-backend    # Statistik eksekusi skill
smara skill refine deploy-backend   # Generate proposal refinement via LLM
smara skill analytics               # Global skill analytics

๏ฟฝ๏ฟฝ Manajemen Memori

Kelola basis pengetahuan agen Anda:

# Pencarian Hybrid (Semantic + Keyword)
smara memory search "cara deploy nextjs" --hybrid

# Kelola Kategori
smara category create "Coding" --description "Snippet dan tutorial"
smara category list

# Versi & Rollback
smara memory history [ID]
smara memory rollback [ID] [VersionID]

# Backup & Restore
smara memory export backup.zip --format zip
smara memory import backup.zip

๐Ÿงฌ Memory Graph โ€” Memori Saling Terhubung

Setiap memori dapat dihubungkan satu sama lain. Auto-link engine otomatis pilih mode terbaik berdasarkan ketersediaan embedding di provider Anda.

# Manual link
smara memory link 12 34 --relation refines --weight 0.8 --note "iterasi v2"
smara memory unlink 7
smara memory links 12

# Auto-link otomatis (semantic kalau provider punya embeddings, lexical kalau tidak)
smara memory autolink --threshold 0.78 --top-k 5

# Visualisasi interaktif
smara memory graph              # buka di browser default
smara memory graph --port 7878  # custom port
smara memory graph --export graph.json    # export untuk dipakai tool lain

Visualisasi juga tersedia di Smara Web โ€” pindah ke tab Memory โ†’ Graph untuk explore graph dengan node hover, search filter, dan klik untuk drill-down ke detail memori beserta neighbor-nya. Tema mengikuti Pastel Green Crush design system.


๐ŸŒ Smara Serve (Platform Bot)

Smara dapat dijalankan sebagai layanan bot yang aktif terus-menerus.

# Jalankan semua platform yang dikonfigurasi
smara serve

# Jalankan platform spesifik dengan mode default 'plan'
smara serve --platform telegram --mode plan
๐Ÿค– Perintah Bot Messaging:
  • /ask <prompt> โ€” Kirim pertanyaan cepat.
  • /mode <ask|rush|plan> โ€” Ganti mode agen.
  • /mcp โ€” Lihat daftar tool yang tersedia.
  • /clear โ€” Reset sesi percakapan.

๐Ÿ› ๏ธ Perintah CLI Lainnya

  • smara start: Mulai sesi interaktif TUI.
  • smara provider list: Lihat provider yang tersedia.
  • smara config list: Cek konfigurasi saat ini.
  • smara update: Perbarui ke versi terbaru.
  • smara version: Tampilkan informasi versi.
  • smara ssh: Manajemen VPS via SSH (add-host, exec, connect, upload, download, keygen, logs).
  • smara skill: Kelola reusable automation skill (create, run, install, search, publish, info, delete).
  • smara explore: Eksplorasi struktur proyek secara visual.
  • smara guide: Panduan interaktif langsung di terminal.
  • smara dashboard: Monitoring real-time TUI.
  • smara serve: Jalankan platform bot (Telegram, Discord, WhatsApp).
  • smara graphify: Generate knowledge graph dari codebase Go (init, query, path, explain, export, list, delete).
  • smara memory graph: Visualisasi memory graph interaktif (vis-network di browser).
  • smara memory link/unlink/links: Kelola koneksi antar memori secara manual.
  • smara memory autolink: Bangun koneksi otomatis (semantic atau lexical fallback).

โš™๏ธ Konfigurasi Detail (config.yaml)

provider: anthropic
model: claude-3-5-sonnet-latest
ollama_host: http://localhost:11434
platforms:
  telegram:
    enabled: true
    token: "YOUR_TOKEN"
    allowed_users: ["12345678"]
  discord:
    enabled: true
    token: "YOUR_TOKEN"
    allowed_roles: ["smara-user"]
  whatsapp:
    enabled: true

skill_registries:
  - name: default
    url: https://raw.githubusercontent.com/gede-cahya/Smara-Skills/main/registry.json

๐Ÿงช Testing

Jalankan suite unit test lengkap:

go test ./...

Test spesifik package:

go test ./pkg/agent/... ./internal/agent/... ./internal/memory/... ./internal/audit/...

Build & release cross-platform:

make test
make release

๐Ÿ“„ Lisensi

MIT License - ยฉ 2026 Gede Cahya.

Directories ยถ

Path Synopsis
cmd
smara command
Smara CLI โ€” Autonomous Multi-Agent Terminal Entry point for the smara binary.
Smara CLI โ€” Autonomous Multi-Agent Terminal Entry point for the smara binary.
internal
agent
Package agent provides the multi-agent system for Smara.
Package agent provides the multi-agent system for Smara.
agent/workflow
Package workflow implements the agentic workflow engine with orchestrated multi-agent execution.
Package workflow implements the agentic workflow engine with orchestrated multi-agent execution.
audit
Package audit provides structured logging of all agent actions for observability.
Package audit provides structured logging of all agent actions for observability.
autonomy
Package autonomy implements the Multi-Timeframe Autonomy Loop (Heartbeat) with Hold State capability for Smara CLI.
Package autonomy implements the Multi-Timeframe Autonomy Loop (Heartbeat) with Hold State capability for Smara CLI.
cognitive
Package cognitive provides strict JSON Schema validation for tool function calling, enforcing the Cognitive Layer's precision requirement (Hermes concept).
Package cognitive provides strict JSON Schema validation for tool function calling, enforcing the Cognitive Layer's precision requirement (Hermes concept).
config
Package config manages Smara CLI configuration via Viper.
Package config manages Smara CLI configuration via Viper.
integrations
Package integrations wires together all new PRD features: Safety, Autonomy, Sandbox, LSP, Memory Compaction, and Audit Log.
Package integrations wires together all new PRD features: Safety, Autonomy, Sandbox, LSP, Memory Compaction, and Audit Log.
llm
Package llm provides LLM provider abstractions for Smara CLI.
Package llm provides LLM provider abstractions for Smara CLI.
lsp
Package lsp provides Language Server Protocol integration for Smara CLI.
Package lsp provides Language Server Protocol integration for Smara CLI.
mcp
Package mcp - opencode.go loads MCP server configurations from OpenCode's config file.
Package mcp - opencode.go loads MCP server configurations from OpenCode's config file.
memory
Package memory provides auto-compacting functionality to prevent context window overflow.
Package memory provides auto-compacting functionality to prevent context window overflow.
memory/cloud
Package cloud โ€” Config struct and validation rules.
Package cloud โ€” Config struct and validation rules.
memory/cloud/d1
Package d1 implements the cloud.Provider interface backed by Cloudflare D1 (serverless SQLite) + REST API.
Package d1 implements the cloud.Provider interface backed by Cloudflare D1 (serverless SQLite) + REST API.
memory/cloud/supabase
Package supabase โ€” EnsureDatabase / List / Delete.
Package supabase โ€” EnsureDatabase / List / Delete.
memory/cloud/turso
Package turso โ€” EnsureDatabase implementation (task 8.2).
Package turso โ€” EnsureDatabase implementation (task 8.2).
ninedrive
Package ninedrive is a minimal client for the 9drive uploads API.
Package ninedrive is a minimal client for the 9drive uploads API.
platform
Package platform provides the multi-platform integration layer for Smara CLI.
Package platform provides the multi-platform integration layer for Smara CLI.
platform/discord
Package discord provides the Discord Bot adapter for Smara.
Package discord provides the Discord Bot adapter for Smara.
platform/telegram
Package telegram provides the Telegram Bot API adapter for Smara.
Package telegram provides the Telegram Bot API adapter for Smara.
platform/whatsapp
Package whatsapp provides the WhatsApp adapter for Smara using the whatsmeow library.
Package whatsapp provides the WhatsApp adapter for Smara using the whatsmeow library.
repair
Package repair provides self-repair / self-healing diagnostic and recovery tools for Smara CLI.
Package repair provides self-repair / self-healing diagnostic and recovery tools for Smara CLI.
safety
Package safety implements the Two-Step Safety layer (Plan Mode vs Build Mode) and Auto-Revert functionality for Smara CLI.
Package safety implements the Two-Step Safety layer (Plan Mode vs Build Mode) and Auto-Revert functionality for Smara CLI.
sandbox
Package sandbox provides isolated command execution with safety guards for Smara CLI's terminal operations.
Package sandbox provides isolated command execution with safety guards for Smara CLI's terminal operations.
session
Package session provides session types used across agent and memory packages.
Package session provides session types used across agent and memory packages.
ssh
sync
Package sync implements local background sync for shared team memory.
Package sync implements local background sync for shared team memory.
ui
Package ui provides the interactive terminal REPL for Smara.
Package ui provides the interactive terminal REPL for Smara.
ui/clipboard
Package clipboard provides terminal clipboard integration.
Package clipboard provides terminal clipboard integration.
web
pkg
agent
Package agent provides the multi-agent system for Smara.
Package agent provides the multi-agent system for Smara.
audit
Package audit re-exports the audit logger for public use.
Package audit re-exports the audit logger for public use.
autonomy
Package autonomy re-exports the autonomy engine for public use.
Package autonomy re-exports the autonomy engine for public use.
cognitive
Package cognitive re-exports the cognitive schema validator for public use.
Package cognitive re-exports the cognitive schema validator for public use.
config
Package config manages Smara CLI configuration via Viper.
Package config manages Smara CLI configuration via Viper.
integrations
Package integrations re-exports the integrations engine for public use.
Package integrations re-exports the integrations engine for public use.
llm
Package llm provides LLM provider abstractions for Smara CLI.
Package llm provides LLM provider abstractions for Smara CLI.
lsp
Package lsp re-exports the LSP client for public use.
Package lsp re-exports the LSP client for public use.
mcp
Package mcp - opencode.go loads MCP server configurations from OpenCode's config file.
Package mcp - opencode.go loads MCP server configurations from OpenCode's config file.
memory
Package memory provides SQLite-backed memory storage with vector search for Smara.
Package memory provides SQLite-backed memory storage with vector search for Smara.
platform
Package platform provides the multi-platform integration layer for Smara CLI.
Package platform provides the multi-platform integration layer for Smara CLI.
platform/discord
Package discord provides the Discord Bot adapter for Smara.
Package discord provides the Discord Bot adapter for Smara.
platform/telegram
Package telegram provides the Telegram Bot API adapter for Smara.
Package telegram provides the Telegram Bot API adapter for Smara.
platform/whatsapp
Package whatsapp provides the WhatsApp adapter for Smara using the whatsmeow library.
Package whatsapp provides the WhatsApp adapter for Smara using the whatsmeow library.
safety
Package safety re-exports the safety engine for public use.
Package safety re-exports the safety engine for public use.
sandbox
Package sandbox re-exports the sandbox for public use.
Package sandbox re-exports the sandbox for public use.
session
Package session provides session types used across agent and memory packages.
Package session provides session types used across agent and memory packages.
skill
Package skill provides a public API for Smara's skill (automation recipe) system.
Package skill provides a public API for Smara's skill (automation recipe) system.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL