Skip to main content
O Narya chama o fornecedor de modelos que você configura, com a sua própria credencial. Três fornecedores vêm no binário.

Os três fornecedores


openrouter é um gateway para outros fornecedores. Uma instalação nova sem config.toml roda no modelo padrão do provedor em que você fez login. Sobrescreva a família de wire, a base URL e o modelo padrão por provedor em [providers.<name>] no config.toml. O seu arquivo vence em qualquer colisão com o catálogo do binário. Rode narya providers para listar os provedores, e narya models para listar os modelos.

De onde vem a sua chave


O Narya deriva o nome da variável de ambiente do nome do provedor, em maiúsculas, mais _API_KEY. Então anthropicANTHROPIC_API_KEY, openaiOPENAI_API_KEY, e openrouterOPENROUTER_API_KEY. O Narya lê três camadas em ordem:
  1. A variável de ambiente, que vence em cada leitura.
  2. O keychain do sistema operacional: macOS Keychain ou Linux Secret Service.
  3. Um arquivo por provedor com permissões 0600 em credentials no seu Narya home. O Narya usa esta camada apenas em uma máquina sem nenhum backend de keychain.
Se o keychain existe mas recusa a requisição, o Narya reporta o erro e não usa o arquivo.
narya auth login escreve no keychain mesmo quando a variável de ambiente já guarda uma chave para aquele provedor. A variável de ambiente então encobre a chave armazenada em cada leitura, sem mensagem. Remova a variável para usar o que você armazenou.

Login


Rode narya auth login <provider> para armazenar uma chave, e narya auth logout <provider> para removê-la. O Narya testa uma chave digitada contra o provedor antes de armazenar qualquer coisa. Acrescente --method key para digitar uma chave, ou --method subscription para um login pelo navegador. O login pelo navegador funciona apenas para anthropic, contra claude.ai e platform.claude.com.

O que sai da sua máquina


O Narya envia os seus prompts, os arquivos que ele lê e os resultados de ferramentas ao fornecedor de modelos que você configura, com a sua credencial. A Lerian não opera nenhum endpoint nesse caminho. O Narya também alcança estes hosts:
  • models.dev, para uma atualização do catálogo de modelos a cada 12 horas, e cada provedor que você configurou, para uma listagem GET /v1/models. Defina NARYA_MODELS_URL=off para parar os dois. A atualização nunca bloqueia um turno, e uma falha passa sem mensagem.
  • Os dois hosts de login pelo navegador acima, durante um login.
  • Um host de release, em um comando explícito de upgrade.
  • Qualquer host que o modelo nomeia pela ferramenta fetch dele. Essa chamada roda sob a regra de rede, que pergunta antes. O Narya lê no máximo 5 MiB e espera no máximo 30 segundos.
  • A busca na web do próprio fornecedor, que roda do lado do fornecedor sob a mesma chave. O Narya a oferece aos provedores anthropic e openai, e apenas contra o endpoint do próprio fornecedor. A pergunta de rede não chega nela. Apenas deny network ** a desliga, e uma regra por host restringe o fetch, nunca a busca.
  • Os tool servers, as árvores de ferramentas OpenAPI e o conversor de PDF que você declara. Veja Estendendo o Narya.
Os comandos de shell que o modelo roda alcançam a rede sob as regras de shell, não sob a regra de rede.

Custo


Os preços vêm de um snapshot do models.dev dentro do binário, em dólares americanos por milhão de tokens. Um modelo sem preço publicado não reporta custo. Ele nunca reporta zero. Rode narya records usage --from <time> --to <time> para ver tokens e custo por grupo. Um total incompleto é impresso com um marcador >=. O Narya define dois tetos de gasto por padrão:
  • $5.00 por disparo agendado, como [schedules] ceiling_usd.
  • $20.00 por dono por dia UTC, como [schedules] daily_ceiling_usd.
Um disparo agendado em um modelo que o Narya não pode precificar não roda.