Gini Agent is a personal AI-agent runtime that manages conversations, runs, tasks, approvals, memory, skills, jobs, tools, traces, audit events, and runtime health across its clients. It is for an agent that can remember, learn from task outcomes, and operate through desktop or mobile interfaces with user controls. Catalogue add-ons extend the runtime with skills and instructions.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Open-Curiosity/gini-agent --skill phone-callgit clone --depth 1 https://github.com/Open-Curiosity/gini-agentWrote 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/open-curiosity/gini-agent/phone-call)<a href="https://agentmods.dev/skills/open-curiosity/gini-agent/phone-call"><img src="https://agentmods.dev/badge/skills/open-curiosity/gini-agent/phone-call/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/open-curiosity/gini-agent/phone-call"><img src="https://agentmods.dev/badge/skills/open-curiosity/gini-agent/phone-call.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.00030 | $0.01985 |
| Opus 5 | $0.00015 | $0.00992 |
| Sonnet 5 | $0.00006 | $0.00397 |
| Haiku 4.5 | $0.00003 | $0.00198 |
Grade A, and why
phone-call 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 9d 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 — 143 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Phone Call
Place outbound phone calls through Bland AI. An AI voice agent dials the number, follows your task prompt in a live conversation, and the full transcript plus a summary come back when the call ends. Everything runs through skill_run:
skill_run({ skill: "phone-call", script: "place-call",
args: { phoneNumber: "+15551234567", task: "..." } })
The runtime injects BLAND_API_KEY into the scripts — you never see or pass the key.
Workflow
- Gather the full task. Before anything else, collect: who to call (name + number), the goal, hard constraints (dates, times, party size, budget), fallbacks if the first ask isn't available, and the name to give if the callee asks who's calling. A vague task produces a bad call.
- Announce, then dial — the approval card is the confirmation. In one short message, state who you're calling (the exact number) and what the agent will say or ask, then call
place-callimmediately. Do not ask "should I go ahead?" in chat:place-callalways pauses on an Approve/Deny card, and approving that card is the user's go-ahead. A denied card ends the task; if the user sends a new message with changes, adjust per their feedback and submit a freshplace-call— never re-submit the identical call. - Place the call with
place-call. It returns{ ok, callId }. - Wait for the result with
check-call, passingwaitSeconds: 240— the script polls Bland every 10 seconds internally and returns as soon as the call completes (or when the budget runs out). If the result comes back withcompleted: false, callcheck-callagain with the same args and repeat untilcompletedistrue. - Report back the
summaryand the key points of thetranscript(quote relevant exchanges, don't dump the whole thing unless asked). Optional: for structured answers about the call (did they confirm? what time?), runanalyze-call.
If the user wants to abort a call in progress, run stop-call with the callId.
What ships with it
9 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- scripts/__tests__/analyze-call.test.ts 2.3 KB runs code
- scripts/__tests__/call-watch.test.ts 5.3 KB runs code
- scripts/__tests__/check-call.test.ts 2.8 KB runs code
- scripts/__tests__/place-call.test.ts 2.3 KB runs code
- scripts/analyze-call.ts 4.5 KB runs code
- scripts/call-watch.ts 10 KB runs code
- scripts/check-call.ts 6.5 KB runs code
- scripts/place-call.ts 4.5 KB runs code
- scripts/stop-call.ts 2.7 KB runs code
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.
- 9d ago First seen · 143 lines · 30 tokens per session scan A 645058d5f174
phone-call is a skill published in the GitHub repository Open-Curiosity/gini-agent (2,018 stars, last pushed 1mo ago), licensed MIT. It adds 30 tokens to every session and 1,985 once invoked, about $0.0002 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
pptx
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying…
tmux
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output. Use when: (1) monitoring Claude/Codex sessions running in tmux, (2) sending input to interactive terminal applications, (3) scraping output from long-running processes inside tmux, (4) navigating tmux panes/windows…
imaging-data-commons
Query and download public cancer imaging data from NCI Imaging Data Commons using idc-index. Use for accessing large-scale radiology (CT, MR, PET) and pathology datasets for AI training or research. No authentication required. Query by metadata, visualize in browser, check licenses.
clinical-reports
Write comprehensive clinical reports including case reports (CARE guidelines), diagnostic reports (radiology/pathology/lab), clinical trial reports (ICH-E3, SAE, CSR), and patient documentation (SOAP, H&P, discharge summaries). Full support with templates, regulatory compliance (HIPAA, FDA, ICH-GCP), and validation…
clinical-decision-support
Generate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading…
gget
Fast CLI/Python queries to 20+ bioinformatics databases. Use for quick lookups: gene info, BLAST searches, AlphaFold structures, enrichment analysis. Best for interactive exploration, simple queries. For batch processing or advanced BLAST use biopython; for multi-database Python workflows use bioservices.