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
There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.
Wrote 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/google-account-login)<a href="https://agentmods.dev/skills/open-curiosity/gini-agent/google-account-login"><img src="https://agentmods.dev/badge/skills/open-curiosity/gini-agent/google-account-login/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/google-account-login"><img src="https://agentmods.dev/badge/skills/open-curiosity/gini-agent/google-account-login.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00039 | $0.01049 |
| Opus 5 | $0.00019 | $0.00524 |
| Sonnet 5 | $0.00008 | $0.00210 |
| Haiku 4.5 | $0.00004 | $0.00105 |
Grade A, and why
google-account-login 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 11d 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 — 60 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Google Account Login
Signs one Google account into its own gws config dir and registers it as a tagged account. One OAuth client (held by the google-workspace-oauth connector) can authorize many accounts — each lives in its own config dir selected via GOOGLE_WORKSPACE_CLI_CONFIG_DIR. This skill is the login step for that multi-account model.
This skill is normally invoked by google-workspace-setup, not called directly by users. Run it only after the google-workspace-oauth connector exists (so the client id/secret are injected into the script's env).
It ships one script, scripts/account-login.ts, invoked through skill_run:
skill_run {
skill: "google-account-login",
script: "account-login",
args: { tag: "personal", services: ["drive","gmail","calendar","docs","sheets","meet","forms"] }
}
The script mints a gini-managed config dir under ~/.gini/google-accounts/<id>, runs gws auth login (it opens the user's browser to the Google consent screen and waits for them to finish), then confirms the session and registers the tagged account with the local gateway. The user's default browser pops automatically — sign-in is a human-in-the-loop step; never type the user's email or password. The consent URL always carries prompt=select_account, so Google shows the account chooser instead of silently auto-grabbing whatever account the browser is already signed into.
Arguments (stdin JSON)
tag(string, required) — short label for this account, e.g."personal"or"work". Tags are unique across accounts.services(string[], optional) —gwsservice names to request. Defaults to all seven:["drive","gmail","calendar","docs","sheets","meet","forms"].readonly(boolean, optional) — request read-only scopes for the chosen services.scopes(string[], optional) — explicit full scope URLs; overridesservices. Use only when the user names a specific scope shape-scan't express (e.g. full Gmailhttps://mail.google.com/).configDir(string, optional) — run the login into a specific existing config dir instead of minting a new one. Use it to re-auth an account whose session expired: pass that account's storedconfigDir(or"~/.config/gws"for the default-dir session) so the account keeps its id and tag. When omitted, a new gini-managed dir is minted. Ignored whenadopt: true. When re-authing, also pass the account's known email asloginHintandexpectedEmailso Google pre-selects the right account and a wrong-account grab fails fast.loginHint(string, optional) — the intended account's email; pre-highlights it in Google's account chooser. For re-auth, pass the account's known email.expectedEmail(string, optional) — the account this dir must end up as; the login fails fast (never registers) if a different account signs in, instead of silently overwriting the tag.adopt(boolean, optional) — register the already-signed-in session in the default config dir (~/.config/gws) without a fresh login. No browser opens; fails if that dir has no live session.
What ships with it
2 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.
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.
- 11d ago First seen · 60 lines · 39 tokens per session scan A 59b05d6debc2
google-account-login is a skill published in the GitHub repository Open-Curiosity/gini-agent (2,104 stars, last pushed 1mo ago), licensed MIT. It adds 39 tokens to every session and 1,049 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
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.
molecular-cloning
Molecular cloning simulation and design. PCR amplicon prediction, restriction enzyme digestion, Golden Gate and Gibson assembly simulation, primer design, CRISPR sgRNA design, and plasmid annotation. For protein-level sequence analysis use biopython or esm; for database lookups use gene-database or ensembl-database.
geo-database
Access NCBI GEO for gene expression/genomics data. Search/download microarray and RNA-seq datasets (GSE, GSM, GPL), retrieve SOFT/Matrix files, for transcriptomics and expression analysis.