N.E.K.O is a real-time AI catgirl companion designed to live with the user, initiate interaction, share media, and perform tasks through an emotional engine. It is intended for people seeking a proactive personal digital companion. The catalogue contains skills for working with it.
Borrowing it
Nothing to install: this file belongs to Project-N-E-K-O/N.E.K.O. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Project-N-E-K-O/N.E.K.O/main/.agent/skills/gemini-openai-api/SKILL.mdgit clone --depth 1 https://github.com/Project-N-E-K-O/N.E.K.OWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/project-n-e-k-o/n.e.k.o/gemini-openai-api)<a href="https://agentmods.dev/skills/project-n-e-k-o/n.e.k.o/gemini-openai-api"><img src="https://agentmods.dev/badge/skills/project-n-e-k-o/n.e.k.o/gemini-openai-api/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/project-n-e-k-o/n.e.k.o/gemini-openai-api"><img src="https://agentmods.dev/badge/skills/project-n-e-k-o/n.e.k.o/gemini-openai-api.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00089 | $0.00950 |
| Opus 5 | $0.00044 | $0.00475 |
| Sonnet 5 | $0.00018 | $0.00190 |
| Haiku 4.5 | $0.00009 | $0.00095 |
Grade A, and why
gemini-openai-api scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 126 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Gemini OpenAI 兼容 API 接入
Gemini 提供 OpenAI 兼容端点,可作为辅助 API 使用。
[!IMPORTANT] memory/ + utils/ 下不要传
temperature。项目级约定:所有走utils.llm_client.create_chat_llm/ChatOpenAI的调用一律不下发temperature字段(默认None= 不写进请求体)。守门见scripts/check_no_temperature.py。extra_body(控制 thinking)/max_completion_tokens/timeout/max_retries这类参数继续按需配置,但 不要为了"调风格"再加temperature=...。
Base URL
https://generativelanguage.googleapis.com/v1beta/openai/
模型配置
| 用途 | 推荐模型 |
|---|---|
| Summary / Correction / Vision | gemini-3-flash-preview |
| Emotion Analysis | gemini-2.5-flash |
控制 Thinking
Gemini 2.5+ 模型需要通过 extra_body 控制 thinking 行为。
禁用 Thinking(用于 gemini-2.5-flash)
extra_body = {
"extra_body": {
"google": {
"thinking_config": {
"thinking_budget": 0
}
}
}
}
低级别 Thinking(用于 gemini-3-flash-preview)
extra_body = {
"extra_body": {
"google": {
"thinking_config": {
"thinking_level": "low",
"include_thoughts": False
}
}
}
}
[!IMPORTANT] extra_body 需要双层嵌套:外层
"extra_body"是传给 OpenAI client 的参数名,内层{"google": {...}}是 Gemini 的实际配置。
响应格式处理
Gemini 可能返回 markdown 代码块包装的 JSON:
```json
{"emotion": "happy", "confidence": 0.8}
处理方法:
```python
if result_text.startswith("```"):
lines = result_text.split("\n")
if lines[0].startswith("```"):
lines = lines[1:]
if lines and lines[-1].strip() == "```":
lines = lines[:-1]
result_text = "\n".join(lines).strip()
配置文件位置
config/api_providers.json- 添加 gemini 到assist_api_providersconfig/__init__.py- 添加EXTRA_BODY_GEMINI和MODELS_EXTRA_BODY_MAP
api_providers.json 示例
"gemini": {
"key": "gemini",
"name": "Gemini(Google)",
"description": "Google AI 辅助模型,国内无法使用",
"openrouter_url": "https://generativelanguage.googleapis.com/v1beta/openai/",
"summary_model": "gemini-3-flash-preview",
"correction_model": "gemini-3-flash-preview",
"emotion_model": "gemini-2.5-flash",
"vision_model": "gemini-3-flash-preview"
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 126 lines · 89 tokens per session scan A e5291413fdc1
gemini-openai-api is a skill published in the GitHub repository Project-N-E-K-O/N.E.K.O (2,816 stars, last pushed today), licensed Apache-2.0. It adds 89 tokens to every session and 950 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
proxy-config-skill
Configure residential proxy providers and make proxied HTTP requests with geo-targeting.
http-request-skill
Make HTTP requests to external APIs and web services. Supports GET, POST, PUT, DELETE, PATCH methods with headers and JSON body.
geocoding-skill
Convert addresses to coordinates (geocoding) or coordinates to addresses (reverse geocoding) using Google Maps API.
rlm-reasoning-skill
Guides the RLM agent to use REPL code execution with recursive LM calls for complex reasoning, decomposition, and multi-step problem solving.
gemini
Gemini CLI one-shot prompts, summaries, generation, skills, hooks, MCP, or Gemma routing.
vision-skill
Understand images (describe content, answer questions about them, extract text/OCR) via a vision model. Use when the user asks what an image, screenshot, chart, scan, or photo contains.