npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

solvatra-ai

v0.6.0

Published

AI agent CLI ringan bergaya Hermes: chat + memory persisten + skill system pluggable (agent bisa bikin skill sendiri) + generator frontend berbasis template. Multi-provider: Claude/OpenAI(Codex)/custom router.

Readme

solvatra-ai

AI agent CLI ringan bergaya Hermes: chat + memori persisten + skill system (agent bisa bikin skill sendiri) + generator frontend berbasis template. Multi-provider: Claude / OpenAI(Codex) / custom router.

Pakai instan (tanpa install)

npx solvatra-ai

Install global (di laptop mana pun)

npm install -g solvatra-ai
solvatra-ai

Perintah: solvatra-ai (alias: traga-agent). Butuh Node.js >= 20. Set kredensial di ~/.ai-agent-traga/.env (lihat bagian "Install global" di bawah).


AI agent pribadi yang ringan bergaya Hermes: chat lewat terminal, punya memori persisten, dan skill system yang bisa ditambah cuma dengan menaruh satu file. Makin sering diajak ngobrol, makin banyak yang diingat → makin "pintar" soal kamu.

Cuma satu dependency: @anthropic-ai/sdk.

Cara pakai

cd ai-agent-traga
npm install

# set kunci API (salah satu):
cp .env.example .env          # lalu isi ANTHROPIC_API_KEY
# atau: export ANTHROPIC_API_KEY=sk-ant-...

npm start                     # mulai ngobrol

Perintah di dalam chat: /help /memory /forget <id> /skills /exit.

Kenapa "makin pintar"

  • Setiap fakta tahan lama tentang kamu (nama, preferensi, proyek, keputusan) disimpan agent ke data/memory.json lewat skill remember.
  • Tiap giliran, memori yang paling relevan dengan pesanmu disuntik otomatis ke system prompt — jadi agent ingat lintas sesi, bukan cuma dalam satu percakapan.
  • Retrieval-nya ringan (overlap kata kunci), tanpa database atau embedding.

Struktur

src/
  index.js     REPL / CLI
  agent.js     loop utama (streaming + tool-loop) & perakitan system prompt
  memory.js    memory store persisten + pencarian relevansi
  skills.js    loader skill otomatis
  config.js    konfigurasi (env-overridable)
skills/        satu file = satu kemampuan (otomatis jadi tool)
  remember, recall, get_time, calculator, save_note
data/          memori, sesi, catatan (gitignored)

Menambah skill baru

Buat file di skills/, contoh skills/cuaca.js:

export default {
  name: "get_weather",
  description: "Ambil ramalan cuaca sebuah kota.",
  input_schema: {
    type: "object",
    properties: { city: { type: "string" } },
    required: ["city"],
  },
  async run(input, ctx) {
    // ctx = { memory, config }
    return `Cuaca ${input.city}: cerah 30°C`; // ganti dengan panggilan API asli
  },
};

Restart, dan agent langsung bisa memakainya. Tidak perlu ubah kode lain.

Install global (dipakai di mana saja, seperti Claude Code / Hermes)

Perintahnya solvatra-ai (alias lama traga-agent tetap ada).

cd ai-agent-traga
npm install
npm link          # daftarkan perintah global 'solvatra-ai'
# alternatif: npm install -g .

Lalu dari folder project mana pun:

cd ~/project-apa-saja
solvatra-ai

Di mana data & konfigurasi disimpan (global)

Semua state disimpan di ~/.ai-agent-traga/ (bukan di folder package), jadi tetap ada walau package dipindah/di-reinstall:

| Isi | Lokasi | |---|---| | Memori & sesi | ~/.ai-agent-traga/data/ | | Skill buatan agent | ~/.ai-agent-traga/skills/ | | Template buatanmu | ~/.ai-agent-traga/frontend-template/ | | Kredensial | ~/.ai-agent-traga/.env (atau env var, atau .env di folder project saat ini) |

Skill & template bawaan tetap di dalam package; yang buatan user di home dir menimpa/menambah bawaan. Override lokasi home dengan env TRAGA_HOME.

Kredensial dibaca berurutan: .env di folder saat ini → ~/.ai-agent-traga/.env → .env package. Untuk pemakaian global, taruh di ~/.ai-agent-traga/.env:

mkdir -p ~/.ai-agent-traga
cat > ~/.ai-agent-traga/.env <<EOF
TRAGA_PROVIDER=custom
TRAGA_CUSTOM_BASE_URL=https://router.tragasolusi.com/v1
TRAGA_CUSTOM_API_KEY=...
TRAGA_CUSTOM_MODEL=ocg/deepseek-v4-flash-vision-exp
EOF

Keahlian kerja: playbook & tool

Agent bekerja dengan alur pahami → cari akar masalah → kerjakan → verifikasi → laporkan jujur, dan memakai playbook praktis per bidang (tool playbook): cara-kerja, debugging, frontend, backend, devops (deploy/nginx/systemd/docker), github, code-review, security-review — isinya di knowledge/playbooks/.

| Tool | Fungsi | |---|---| | run_command | Jalankan perintah shell (exit code + output, timeout, sudo dengan password sekali per sesi) | | write_file / edit_file / read_file | Tulis (bertahap untuk file besar), ubah presisi, baca file | | github | status, diff, log, branch, commit (menolak file secret), push, PR, cek CI (git + gh) | | code_review | Diff + isi file baru + perintah verifikasi proyek + checklist review | | review_security | Secret bocor, SQL/command injection, XSS, eval, deserialisasi, TLS/CORS/APP_DEBUG, .env ter-commit, audit dependency (npm/composer/pip-audit) |

Ukur ketepatan agent dengan model yang dipakai (jalankan di dalam sebuah repo git):

npm run eval:skills

Login akun Solvatra (wajib)

Agent hanya bisa dipakai setelah login ke akun solvatra.web.id:

solvatra-ai login     # buka browser -> cocokkan kode -> Setujui
solvatra-ai whoami    # akun yang sedang login
solvatra-ai logout    # cabut key perangkat ini & hapus kredensial lokal

Menjalankan solvatra-ai tanpa login otomatis memulai alur login. Setelah disetujui, CLI menerima API key tg_live_ atas nama akun itu (tersimpan di ~/.ai-agent-traga/auth.json, mode 0600) dan memakainya untuk provider solvatra — model, kuota, dan batasnya mengikuti paket akun. Key bisa dicabut dari menu API Keys di web; CLI lalu meminta login ulang. Di server tanpa layar (SSH) set TRAGA_NO_BROWSER=1 lalu buka URL yang ditampilkan dari perangkat lain.

Pilihan provider (seperti router)

Pilih lewat env TRAGA_PROVIDER, lalu jalankan ulang.

| Mode | Provider | Auth | Catatan | |---|---|---|---| | solvatra (default) | Solvatra AI Gateway | login akun (solvatra-ai login) | model dari /v1/models akun; ganti dengan /model | | claude | Claude / Anthropic (resmi) | ANTHROPIC_API_KEY atau ANTHROPIC_AUTH_TOKEN (OAuth/SSO resmi) | jalur OAuth resmi via beta header oauth-2025-04-20 | | codex | Codex / OpenAI (resmi) | OPENAI_API_KEY (API key / OAuth bearer resmi) | endpoint api.openai.com, format OpenAI | | custom | Router OpenAI-compatible mana pun | TRAGA_CUSTOM_* | OpenRouter / LiteLLM / ai-gateway — set BASE_URL+MODEL+API_KEY |

Contoh:

TRAGA_PROVIDER=claude ANTHROPIC_API_KEY=sk-ant-... npm start
TRAGA_PROVIDER=codex  OPENAI_API_KEY=sk-...        npm start
TRAGA_PROVIDER=custom \
  TRAGA_CUSTOM_BASE_URL=https://openrouter.ai/api/v1 \
  TRAGA_CUSTOM_MODEL=anthropic/claude-3.5-sonnet \
  TRAGA_CUSTOM_API_KEY=... npm start

Soal "SSO resmi": untuk Claude, OAuth token resmi didukung. Untuk Codex/OpenAI, auth resmi dari app pihak-ketiga = API key atau OAuth bearer dari org/SSO kamu. Membajak token login "Sign in with ChatGPT" milik Codex CLI untuk dipakai app lain tidak didukung (melanggar ToS) dan tidak diimplementasikan.

Konfigurasi (env)

| Variabel | Default | Keterangan | |---|---|---| | TRAGA_SERVER_URL | https://solvatra.web.id | server akun Solvatra (login + gateway) | | TRAGA_SOLVATRA_MODEL | model pertama akun | model untuk provider solvatra | | TRAGA_NO_BROWSER | — | 1 = jangan buka browser saat login | | ANTHROPIC_API_KEY | — | untuk provider claude | | TRAGA_MODEL | claude-opus-5 | ganti claude-haiku-4-5 untuk lebih murah/cepat | | TRAGA_EFFORT | low | low…max — naikkan untuk tugas berat | | TRAGA_NAME | Solvatra | nama panggilan agent | | TRAGA_MEMORY_TOPK | 8 | jumlah memori yang disuntik per giliran |

Rilis manual (tanpa CI/CD)

Publikasi dilakukan manual dari mesin ini. Sekali jalan:

npm run release:patch   # 0.3.2 -> 0.3.3  (perbaikan kecil)
npm run release:minor   # 0.3.x -> 0.4.0  (fitur)
npm run release:major   # 0.x   -> 1.0.0  (perubahan besar)

Tiap perintah: naikkan versi + buat tag + push ke GitHub + npm publish. Karena akun npm memakai 2FA, saat npm publish akan muncul prompt OTP — masukkan kode dari authenticator.

Agar tak diminta OTP tiap kali: taruh Granular Access Token (publish, bypass 2FA) di ~/.npmrc: //registry.npmjs.org/:_authToken=TOKEN_KAMU (file ini hanya di mesinmu, jangan di-commit).