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 ebeirne/Lians2 --skill liansgit clone --depth 1 https://github.com/ebeirne/Lians2Wrote 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/ebeirne/lians2/lians)<a href="https://agentmods.dev/skills/ebeirne/lians2/lians"><img src="https://agentmods.dev/badge/skills/ebeirne/lians2/lians.svg" alt="Measured on agentmods" 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.00073 | $0.01112 |
| Opus 5 | $0.00036 | $0.00556 |
| Sonnet 5 | $0.00015 | $0.00222 |
| Haiku 4.5 | $0.00007 | $0.00111 |
Grade A, and why
lians 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 7d 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.
This is a copy
100% identical to lians — 26 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 109 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Lians Memory
Lians is a memory layer for AI agents built for regulated environments. Unlike a
plain vector store, it uses a bitemporal model: every fact carries the
business time it became true (event_time) and the system time it was known
(valid_from/valid_to). When a new fact supersedes an old one, the old one is
excluded from recall automatically — but remains reconstructable for any past date.
Use Lians when the agent works with facts that change over time: guidance revisions, dosage changes, matter status, prior decisions — and when those changes must be auditable.
Setup
pip install lians-sdk # hosted / self-hosted
pip install lians-sdk[local] # zero-setup local SQLite (no server, no API key)
Environment (hosted/self-hosted): LIANS_URL, LIANS_API_KEY, LIANS_AGENT_ID.
Get a free key at api.lians.dev. Local mode needs none.
Clients (same API surface)
from lians import LiansClient # sync HTTP — scripts, CLIs
from lians import AsyncLiansClient # async HTTP — FastAPI, async frameworks
from lians import LocalLiansClient # local SQLite — prototyping, CI, notebooks
Core operations
from datetime import datetime, timezone
mem = LiansClient(base_url=os.environ["LIANS_URL"], api_key=os.environ["LIANS_API_KEY"])
# Store — event_time is the BUSINESS time the fact became true, not now
mem.add(agent_id="desk", content="NVDA guidance raised to $40B",
event_time=datetime(2025, 11, 19, tzinfo=timezone.utc),
metadata={"ticker": "NVDA", "metric": "revenue_guidance"})
# Recall — current, non-stale facts only
res = mem.recall(agent_id="desk", query="NVDA guidance", k=5)
for m in res["memories"]:
print(m["event_time"], m["content"])
# Point-in-time — what did we know on a past date?
mem.recall_at(agent_id="desk", query="NVDA guidance",
as_of=datetime(2025, 9, 1, tzinfo=timezone.utc))
# From a conversation
mem.add_from_messages(agent_id="desk",
messages=[{"role": "assistant", "content": "TSLA Q4 deliveries hit 495k"}])
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.
- 7d ago First seen · 109 lines · 73 tokens per session scan A b259787a2477
lians is a skill published in the GitHub repository ebeirne/Lians2 (0 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 73 tokens to every session and 1,112 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to lians, differing in 26 lines, and is treated as a copy.
Other skills, from other repositories
finance-tracker
Track expenses, analyze spending patterns, categorize transactions. Works with bank CSV exports or manual input.
stocks
Query stock prices, fund NAV, crypto rates via free APIs. Supports A-shares, US stocks, HK stocks, and crypto.
remember-finances
Import bank statements, receipts, and invoices into persistent memory. Extract transactions with amounts, dates, merchants, and categories.
mnemopay
Persistent session memory and wallet for AI agents — works on Bedrock, Vertex, API, and Foundry where Anthropic's built-in memory doesn't. Auto-captures git commits, publishes, and file writes without manual remember() calls. Apache 2.0 licensed, self-hostable, MCP-native. 15 MCP tools: remember, recall, forget…
brain-write
How to write to the INITE Brain knowledge graph from an agent loop — recordfact (with the conversationId / evidence[] grounding inputs), ingestdocument, linkentities, retractfact, recordfeedback, and the detectcontradiction preflight. Covers confidence picking, claim grounding, retract vs forget semantics, identityof…
brain-conflict
How to detect and resolve conflicting beliefs in the INITE Brain knowledge graph — the COMPETING fact status, getcompetingfacts, detectcontradiction preflight, and the human-in-the-loop adjudication workflow. Use when the timeline shows two facts disagreeing on the same predicate, or when an agent needs to decide what…