README file from
GithubAntinomia
🎉 Now available on the Obsidian Community Store — 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.
✅ Status: v1.6.5 — on the Obsidian Community Store
Antinomia is available on the Obsidian Community Store (and also installable via BRAT). Features are stable, but a few edge-case flows (e.g., duplicate Elevate modal in certain conditions) are under observation. 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.
The 5 layers
Every Antinomia note has a frontmatter field antinomia_type that places it in one of five 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, original_language |
principle |
An operational IF/THEN rule derived from a tension | origin_tension |
defeated |
A defeated belief (historical memory) | motive, replaced_by |
meta_note |
Reflection on using the system | date |
Design invariant: the layer of a note lives exclusively in its frontmatter. Files never move between folders when a layer changes.
Core features
- Note creation: guided modals for tensions and substrate notes + free-form input with AI classification.
- Layer transitions (Eleva, Risolvi, Archivia) happen via frontmatter — files never move.
- Contradiction Hunter (AI): scans open tensions and substrates, identifies contradictory pairs with a confidence rating. Constraint: it identifies, it does not resolve.
- Antinomia Graph View (Cytoscape.js + fcose) with per-layer clusters, smooth zoom animations, 6 theme presets.
- Multi-backend AI: Anthropic Cloud, OpenAI, Groq, OpenRouter, LM Studio local, Ollama local. Multiple profiles with a Hunter-specific override.
- Complete onboarding: Welcome modal, 7-card tutorial, 21-note example vault (with KEY note for measuring the Hunter), getting-started checklist.
See plugin/README.md for the full command reference (Italian).
Installation
From the Obsidian Community Store (recommended)
- In Obsidian: Settings → Community plugins → Browse
- Search "Antinomia" and click Install, then Enable
Or open it directly: obsidian://show-plugin?id=antinomia. Updates arrive automatically through Obsidian.
With BRAT (early/beta builds)
BRAT (Beta Reviewers Auto-update Tool) tracks this repo's latest release directly — useful for pre-store builds:
- Install BRAT from Obsidian Community plugins
- Open Settings → BRAT → Add Beta plugin
- Paste this repo URL:
https://github.com/demartinogiuseppe/antinomia - Confirm → BRAT fetches the latest release
- Settings → Community plugins → enable Antinomia
BRAT will automatically check for new releases and prompt you to update.
From release zip (manual alternative)
- Download
main.js,manifest.json(andstyles.cssif present) from the latest release - Copy them into
<YOUR_VAULT>/.obsidian/plugins/antinomia/ - Settings → Community plugins → reload → enable Antinomia
See BETA-INSTALL.md for the extended beta-tester guide (dedicated vault, Front Matter Title, AI configuration, example vault).
Build from source
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/.
Prerequisites
- Obsidian 1.7.2+
- Front Matter Title community plugin (recommended) — shows human titles instead of timestamp basenames (
T-20260601-...) in the File Explorer. Antinomia flags this if missing. - At least one AI backend for Hunter / Propose / Map presuppositions:
- Free local: LM Studio with a loaded model (e.g., Qwen3 14B distill)
- Paid cloud: Anthropic / OpenAI / Groq / OpenRouter API key
⚠️ Cloud APIs incur per-token cost. If you're cost-sensitive, use LM Studio or Ollama locally (free, private, models downloaded once).
Privacy & network use
Antinomia makes no autonomous network requests and contains no telemetry, analytics, or tracking of any kind. It never "phones home."
- The network is used only when you explicitly invoke an AI feature (Contradiction Hunter, propose title, propose IF/THEN, map presuppositions, classify, free-form input, PDF / YouTube concept extraction). Each such action sends a single request to the AI backend you configured, and nowhere else.
- Cloud backends (Anthropic, OpenAI, Groq, OpenRouter): when you run an AI feature, the content of the notes involved in that action (the text the feature needs) is sent to that provider for processing, subject to the provider's own terms and privacy policy. Choose your provider accordingly.
- Local backends (LM Studio, Ollama): requests go only to
localhost— nothing leaves your machine. This is the privacy-preserving option. - YouTube transcript fetch additionally contacts YouTube's public
timedtextendpoint 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. - API keys are stored locally in your vault's
.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.
Philosophy
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.
Citation
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 (version 1.2.6) [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.
Intellectual references
Hegel (dialectics), David Bohm (dialogue that suspends defense), Karl Popper (falsifiability), Thomas Kuhn (scientific revolutions emerge from anomalies), Friedrich Hayek (spontaneous order, local knowledge).
License
MIT. © 2026 Giuseppe De Martino.
Author
Giuseppe De Martino. For discussions, ideas, bug reports: open an issue on GitHub.