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

caramelo-chat

v0.6.2

Published

Chat com o Caramelo, por Guilherme Favaron, direto no terminal

Readme

caramelo

Um modelo de IA brasileiro, com a nossa cara. Base Gemma 4 E4B adaptada ao jeito de escrever do Gui com fine-tune LoRA, servida com uma API compatível com OpenAI, interface web e uma CLI no terminal. A camada de segurança fica sempre ligada e tem prioridade sobre as instruções do usuário.

Desenvolvido, disponibilizado e mantido por Guilherme Favaronguifav.github.io · guilhermefavaron.com.br

O que é

  • Modelos: caramelo (geral) e caramelo-code (programação) — duas variantes do mesmo modelo (Gemma 4 E4B + LoRA, treinado em 414 pares de correção de estilo destilados dos artigos do Substack ia-aplicada), que diferem pelo system prompt injetado.
  • API compatível com OpenAI: aponte qualquer SDK para https://ia-caramelo.com/v1.
  • Web: crie conta, gere chave e converse em ia-caramelo.com.
  • CLI: pacote caramelo-chat no npm.
  • Segurança sempre ligada: recusa armas, malware/invasão, abuso infantil, violência, autolesão, doxxing e desinformação — independentemente do prompt, sem revelar as próprias instruções.

Usar

Web

Acesse ia-caramelo.com, crie sua conta e gere uma chave crml_....

API (compatível com OpenAI)

curl https://ia-caramelo.com/v1/chat/completions \
  -H "Authorization: Bearer crml_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"model":"caramelo","messages":[{"role":"user","content":"e aí, beleza?"}]}'

Funciona com qualquer SDK da OpenAI: aponte o base URL (base_url no Python, baseURL no JS) para https://ia-caramelo.com/v1, com a chave crml_....

CLI

npm install -g caramelo-chat
caramelo login                      # loga com Google no navegador e cria sua chave
caramelo "me explica RAG em duas frases"
caramelo -m caramelo-code "função de debounce em python"
caramelo keys                       # suas chaves: uso e economia estimada
caramelo update                     # atualiza a CLI para a última versão

| Config | Default | Descrição | |---------------|----------------------------|----------------------------| | apiUrl | https://ia-caramelo.com | URL do gateway | | apiKey | (vazio) | Chave de API (crml_...), criada pelo login | | model | caramelo | caramelo ou caramelo-code | | temperature | 0.7 | Criatividade 0–1 | | maxTokens | 512 | Máx tokens na resposta |

Config em ~/.caramelo/config.json. Comandos no chat: /sair, /limpar, /help.

Como foi construído

  1. Base — Gemma 4 E4B (Google), modelo aberto que roda até em CPU.
  2. Fine-tune — LoRA sobre 414 pares de correção de estilo (destilados de ~229 artigos, ~365 mil palavras), treinado no Hugging Face (Jobs, GPU).
  3. Quantização — merge do adapter com a base e export para GGUF.
  4. Deploy — servido em CPU na VPS via llama.cpp, atrás de um gateway com auth, chaves e rate limit.

Estrutura

caramelo/
├── gateway/          API pública + web (FastAPI)
│   ├── app.py          rotas (/ landing, /app web app, /v1/chat/completions, /admin), auth, chaves, rate limit, proxy
│   ├── personas.py     CARAMELO, CARAMELO_CODE, SAFETY (estilo + segurança injetados server-side)
│   ├── db.py           SQLite (usuários, chaves, conversas, logs)
│   ├── static/         landing.html (vitrine), index.html (app), admin.html, tailwind.css, icons.svg, landing.js
│   └── .env.example
├── bin/caramelo.js   CLI (pacote npm caramelo-chat)
├── finetune/         pipeline LoRA + hf-space/ (treino no HF Spaces)
└── eval/             comparativo Caramelo vs modelo base

Personalizar

  • Estilo: edite gateway/personas.py (CARAMELO, CARAMELO_CODE). A constante SAFETY é a camada de segurança — não a remova.
  • Limites: veja gateway/.env.example (rate limit, concorrência, MAX_OUTPUT_TOKENS).

Hugging Face

Licença

Código sob MIT. O modelo herda os termos de uso do Gemma (Google): treinar e servir é permitido; ao redistribuir os pesos, inclua a atribuição ao Gemma e a política de uso proibido.