Giuseppe De Martino1k downloadsMap and work through the contradictions in your vault: tensions, tradeoffs, and conflicting goals organized in 5 layers via frontmatter, with an AI Contradiction Hunter and PDF concept extraction. Works with cloud APIs or fully local models.
🎉 Now available on the Obsidian Community Store — or install from Obsidian → Settings → Community plugins → Browse → "Antinomia".
"Notes preserve. Contradictions interrogate."
Antinomia is an Obsidian plugin for Personal Tension Management (PTM) — the in-tension counterpart of Personal Knowledge Management. If PKM organizes explicit knowledge (what I know), PTM organizes where things don't fit (where something jars): contradictions, tradeoffs, anomalies, persistent doubts, weak signals, conflicts between goals. Clean ideas emerge later — as operational principles derived from resolving a tension, not before.
📓 I write about the ideas behind this work — the why, the architecture, the practice — at The Deeper Layer newsletter. Start with The Problem Nobody Is Solving and The Architecture of PTM.
Antinomia is available on the Obsidian Community Store (and also installable via BRAT), on both desktop and mobile. Features are stable. Please open an issue if you find anything odd.
Antinomia is not a decision-support system. The pairs the Contradiction Hunter proposes are prompts for thinking, not truths on which to base real decisions (work, health, finance, relationships). AI models can hallucinate, oversimplify, misinterpret. Use Antinomia as a reflective practice.
Every Antinomia note has a frontmatter field antinomia_type that places it in one of six layers:
| Type | What it is | Key fields |
|---|---|---|
tension |
A contradiction between two positions A and B | status, links |
substrate |
Raw material (quotes, facts, observations) | source, base_language |
principle |
An operational IF/THEN rule derived from a tension | origin_tension, if_clause, then_clause, grey_zone, presuppositions |
defeated |
A defeated belief (historical memory) | motive, replaced_by |
meta_note |
Reflection on using the system | creation_date |
presupposition |
An implicit assumption a principle silently rests on (mapped via the "Map presuppositions" command) | presupposes_of |
Design invariant: the layer of a note lives exclusively in its frontmatter. Files never move between folders when a layer changes.
Or open it directly: obsidian://show-plugin?id=antinomia. Updates arrive automatically through Obsidian.
BRAT (Beta Reviewers Auto-update Tool) tracks this repo's latest release directly — useful for pre-store builds:
https://github.com/demartinogiuseppe/antinomiaBRAT will automatically check for new releases and prompt you to update.
main.js, manifest.json (and styles.css if present) from the latest release<YOUR_VAULT>/.obsidian/plugins/antinomia/See BETA-INSTALL.md for the extended beta-tester guide (dedicated vault, Front Matter Title, AI configuration, example vault).
npm install
npm run build
This produces a production main.js at the repo root (alongside manifest.json + styles.css). For real-world use, copy those files into <YOUR_VAULT>/.obsidian/plugins/antinomia/.
T-20260601-...) in the File Explorer. Antinomia flags this if missing.⚠️ Cloud APIs incur per-token cost. If you're cost-sensitive, use LM Studio or Ollama locally (free, private, models downloaded once).
Antinomia makes no autonomous network requests and contains no telemetry, analytics, or tracking of any kind. It never "phones home."
localhost, but Antinomia also recognizes bridge addresses (Tailscale *.ts.net, LAN IPs 10.* / 192.168.* / 172.16-31.*, and .local / .lan / .home / .internal TLDs) as "local" — i.e., privacy-equivalent to localhost. Nothing leaves your devices. This is the privacy-preserving option. See Using local LLMs from mobile for setup.timedtext endpoint to download captions for a video URL you provide; if that fails it offers an opt-in paste fallback. No video data is sent anywhere else..obsidian/plugins/antinomia/data.json (Obsidian's standard plugin-settings file), in plain text. If you sync your vault (Obsidian Sync, iCloud, Git, Dropbox, …), that file — and your keys — travels with it. Keep it out of public repositories and shared folders.Antinomia works on Obsidian mobile. By default, the mobile app can reach cloud backends (Anthropic, OpenAI, Groq, OpenRouter) directly. Local backends (LM Studio, Ollama) are by default reachable only at localhost, which mobile devices cannot access.
To use your home LM Studio or Ollama from mobile, you need to expose them via a network-reachable address. Three setup paths, in increasing complexity:
Tailscale creates a private mesh VPN between your devices. Your phone is "virtually" on the same network as your desktop, even from cellular. End-to-end encrypted, zero firewall configuration, free for personal use.
mydesktop.tail1234.ts.net).0.0.0.0 (all interfaces) instead of 127.0.0.1.http://mydesktop.tail1234.ts.net:1234/v1 (LM Studio) or http://mydesktop.tail1234.ts.net:11434/v1 (Ollama).Your notes never leave your devices — Tailscale is end-to-end encrypted.
If both devices are on the same home WiFi:
192.168.1.50). On Windows: ipconfig. On macOS: System Settings → Network.0.0.0.0.http://192.168.1.50:1234/v1.Works only when the phone is on the same WiFi.
For access from anywhere via the public internet, with HTTPS:
cloudflared tunnel --url http://localhost:1234 (or your local port).https://random-name.trycloudflare.com)./v1.Cloudflare proxies the traffic. For long-term use, configure an Argo Tunnel with a custom domain.
These setups let you run AI on your own machine from your phone — your notes go to your desktop's local model, never to a cloud AI provider. Antinomia treats Tailscale and private LAN / internal addresses as Local backend in the UI (privacy notices reflect this). A Cloudflare Tunnel (Option 3) reaches your local model too, but its traffic is proxied through Cloudflare's network, so Antinomia does not classify those public URLs as local.
Antinomia is not a tool to fill up. It is a practice. The vault grows as you encounter contradictions in your own thinking (substrate). Tensions emerge from the material — they are not designed. The Hunter shows you contradictions you hadn't seen — not to resolve them for you, but to force you to think them through.
When you understand a tension well enough to formulate it as an operational principle (IF/THEN/GREY ZONE), you elevate it. When a belief proves false, it goes into the Defeated archive as a memory of what was not true. The graph that emerges is the map of your epistemic history.
If you use Antinomia in academic or research contexts, please cite both:
The conceptual paper (the idea behind Personal Tension Management):
De Martino, G. (2026). Antinomia: Personal Tension Management. Zenodo. https://doi.org/10.5281/zenodo.20369124
The software (this plugin):
De Martino, G. (2026). Antinomia: an Obsidian plugin for Personal Tension Management [Software]. Zenodo. https://doi.org/10.5281/zenodo.20506815
This is a concept DOI — it always resolves to the latest archived version. See CITATION.cff for the structured format.
Hegel (dialectics), David Bohm (dialogue that suspends defense), Karl Popper (falsifiability), Thomas Kuhn (scientific revolutions emerge from anomalies), Friedrich Hayek (spontaneous order, local knowledge).
MIT. © 2026 Giuseppe De Martino.
Giuseppe De Martino. For discussions, ideas, bug reports: open an issue on GitHub.