obsidian-layout-adjustment
Skill3.7k starsChanged 9 days agoMITView on GitHub
Adjust the user's Obsidian visual layout with CSS snippets. Use for restyling tabs, sidebars, note surfaces, properties, backlinks, graph or file-explorer UI, or diagnosing CSS changes that did not take effect.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about Ar9av/obsidian-wiki
- @ar9av.bsky.social“github.com/Ar9av/obsidi...”Bluesky · Oct 8, 2026 · 1 likes
- @pythonhub.dev“obsidian-wiki Framework for AI agents to build and maintain a digital brain through Obsidian wiki using …”Bluesky · Jun 23, 2026 · 1 likes
- sudosubin/agents.nix“claude-code-marketplaces.github.ar9av.obsidian-wiki: 2026.10.4 → 2026.11.2”GitHub · Nov 4, 2026
- sudosubin/agents.nix“claude-code-plugins.github.ar9av.obsidian-wiki: 2026.10.4 → 2026.11.2”GitHub · Nov 4, 2026
- sudosubin/agents.nix“agent-skills.github.ar9av.obsidian-wiki: 2026.10.4 → 2026.11.2”GitHub · Nov 4, 2026
The biggest 5 of 27 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 27
Talked about on GitHub and Bluesky (27 times).
On GitHub · 25
- Nov 4, 2026claude-code-marketplaces.github.ar9av.obsidian-wiki: 2026.10.4 → 2026.11.2 — sudosubin/agents.nix0 reactions
- Nov 4, 2026claude-code-plugins.github.ar9av.obsidian-wiki: 2026.10.4 → 2026.11.2 — sudosubin/agents.nix0 reactions
- Nov 4, 2026agent-skills.github.ar9av.obsidian-wiki: 2026.10.4 → 2026.11.2 — sudosubin/agents.nix0 reactions
- Nov 2, 2026fix(deps): update dependency obsidian-wiki to v2026.10.4 — lkshrk/agent-stack0 reactions · 2 comments
- Nov 1, 2026chore(deps): update dependency pipx:obsidian-wiki to v2026.10.4 — lkshrk/agent-stack0 reactions · 2 comments
20 more on GitHub
- Oct 28, 2026claude-code-plugins.github.ar9av.obsidian-wiki: init at 2026.10.4 — sudosubin/agents.nix0 reactions
- Oct 28, 2026claude-code-marketplaces.github.ar9av.obsidian-wiki: init at 2026.10.4 — sudosubin/agents.nix0 reactions
- Oct 27, 2026agent-skills.github.ar9av.obsidian-wiki: 2026.10.3 → 2026.10.4 — sudosubin/agents.nix0 reactions
- Oct 21, 2026agent-skills.github.ar9av.obsidian-wiki: 2026.10.2 → 2026.10.3 — sudosubin/agents.nix0 reactions
- Oct 13, 2026agent-skills.github.ar9av.obsidian-wiki: 2026.10.1 → 2026.10.2 — sudosubin/agents.nix0 reactions
- Oct 3, 2026agent-skills.github.ar9av.obsidian-wiki: init at 2026.10.1 — sudosubin/agents.nix0 reactions
- Sep 27, 2026[Candidate] ar9av/obsidian-wiki/.skills/llm-wiki - llm-wiki — ProSkillsMD/proskills0 reactions · 2 comments
- Sep 27, 2026[Candidate] ar9av/obsidian-wiki/.skills/impl-validator - impl-validator — ProSkillsMD/proskills0 reactions · 2 comments
- Sep 27, 2026[Candidate] ar9av/obsidian-wiki/.skills/hermes-history-ingest - hermes-history-ingest — ProSkillsMD/proskills0 reactions · 2 comments
- Sep 26, 2026[Candidate] ar9av/obsidian-wiki/.skills/graph-colorize - graph-colorize — ProSkillsMD/proskills0 reactions · 2 comments
- Sep 26, 2026[Candidate] ar9av/obsidian-wiki/.skills/cross-linker - cross-linker — ProSkillsMD/proskills0 reactions · 2 comments
- Sep 26, 2026[Candidate] ar9av/obsidian-wiki/.skills/copilot-history-ingest - copilot-history-ingest — ProSkillsMD/proskills0 reactions · 2 comments
- Sep 26, 2026[Candidate] ar9av/obsidian-wiki/.skills/codex-history-ingest - codex-history-ingest — ProSkillsMD/proskills0 reactions · 2 comments
- Sep 26, 2026[Candidate] ar9av/obsidian-wiki/.skills/code-understand - code-understand — ProSkillsMD/proskills0 reactions · 2 comments
- Sep 26, 2026[Candidate] ar9av/obsidian-wiki/.skills/claude-history-ingest - claude-history-ingest — ProSkillsMD/proskills0 reactions · 1 comment
- Jul 12, 2026Add obsidian-wiki as a local workspace — aristoapp/awesome-second-brain0 reactions
- Jun 20, 2026feat: Obsidian-compatible wiki.md output from compiled graph — manhhailua/lorekeep0 reactions · 1 comment
- Jun 15, 2026Daily tribute 2026-06-15: obsidian-wiki by @_ar9av — Talonsturgill/signalsniper0 reactions
- May 15, 2026Tracking: AI workflow patterns & companion plugins — brenthaertlein/universal-skills0 reactions · 1 comment
- Apr 9, 2026wiki 生成质量提高 — nashsu/llm_wiki0 reactions · 2 comments
On Bluesky · 2
- Oct 8, 2026github.com/Ar9av/obsidi... — @ar9av.bsky.social1 likes and repost
- Jun 23, 2026obsidian-wiki Framework for AI agents to build and maintain a digital brain through Obsidian wiki using Karpathy's LLM Wiki pattern.… — @pythonhub.dev1 likes and repost · 1 reply
In this repository43 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/agents.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/obsidian-wiki.mdcCursor rule
- claude-history-ingestSkill
- code-understandSkill
- codex-history-ingestSkill
- copilot-history-ingestSkill
- cross-linkerSkill
- daily-updateSkill
- graph-colorizeSkill
- hermes-history-ingestSkill
- impl-validatorSkill
- llm-wikiSkill
- memory-bridgeSkill
- openclaw-history-ingestSkill
- pi-history-ingestSkill
- session-brainSkill
- session-searchSkill
- skill-creatorSkill
- tag-taxonomySkill
- vault-skill-factorySkill
- wiki-agentSkill
- wiki-captureSkill
- wiki-context-packSkill
- wiki-dashboardSkill
- wiki-dedupSkill
- wiki-digestSkill
- wiki-exportSkill
- wiki-history-ingestSkill
- wiki-importSkill
- wiki-ingestSkill
- wiki-lintSkill
- wiki-narrateSkill
- wiki-querySkill
- wiki-rebuildSkill
- wiki-researchSkill
- wiki-setupSkill
- wiki-stage-commitSkill
- wiki-statusSkill
- wiki-switchSkill
- wiki-synthesizeSkill
- wiki-updateSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. About 0 are common, 23 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈23
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Keep the mapping short: one sentence is usually enough.
- Distinctive: line 34
Do not write a long workflow report unless:
- Distinctive: line 57
Start from the live vault.
- Very specific: line 59
Treat enabledCssSnippets as the active styling source of truth.
- Distinctive: line 60
Read active snippets before archives, backups, or old experiments.
- Distinctive: line 67
Use the screenshot and the user's correction as evidence.
- Distinctive: line 68
If it fails, inspect ownership or restore.
- Distinctive: line 84
Before editing, map the phrase:
- Distinctive: line 98
Use this compact map first, then verify exact selectors in the live vault:
- Very specific: line 127
Color/accent: update background, text, border, icon stroke/fill, and active/hover/focus states together.
- Distinctive: line 128
Readability: check rendered contrast, especially for icons on colored toolbars.
- Distinctive: line 130
Rounded corners: check parent shell, child radius, overflow, and adjacent background.
- Distinctive: line 132
Simplification: remove wrappers, borders, gradients, shadows, or pseudo-elements before adding more treatment.
- Distinctive: line 133
Properties/workflow: consider Obsidian's Properties View or display settings before CSS-compressing metadata.
- Distinctive: line 136
If a target needs two change types, do two passes.
- Distinctive: line 155
Ask for explicit confirmation before:
- Distinctive: line 177
If another window covers Obsidian, retake the screenshot.
- Distinctive: line 179
If the screenshot disproves the fix, keep working, restore, or say it failed.
- Distinctive: line 192
If a direction fails twice, restore the last good checkpoint and change the ownership model.
- Distinctive: line 196
Do not refactor during taste exploration.
- Distinctive: line 198
When the user likes the look:
- Distinctive: line 201
Add or update a file map and section headers.
- Distinctive: line 204
Check the diff for accidental visual changes.
- Distinctive: line 212
When done, keep the closeout short.
- Distinctive: line 220
Avoid explaining the whole workflow after every small pass.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Obsidian Layout Adjustment
This skill is for changing how Obsidian looks with CSS files while working with the user's visual language.
Obsidian is always the same kind of environment: app frame, tab headers, side docks, view headers, pane shells, note surface, properties, file explorer, backlinks, graph, rendered markdown, and status bar. The vault, theme, snippets, plugins, and desired taste direction change, but the canvas stays Obsidian.
The core behavior is translation:
the user names a visible Obsidian object. Translate that phrase into the stable Obsidian layer/backend object, edit the active snippets safely, screenshot the result, and keep iterating without losing good states.
This is not a general CSS workflow and not a fixed-theme generator.
Normal Output Mode
This skill should make live styling work faster, not turn every small request into a report.
In normal use:
- Say the mapping only when it prevents ambiguity.
- Keep the mapping short: one sentence is usually enough.
- Then act: inspect active snippets, checkpoint, patch, format, reload, screenshot.
- Report the result concisely with changed files, checkpoint, and screenshot status.
Good normal update:
"I’m treating 'tabs above the note' as workspace tab headers, not the arrows/book/dots view header. I’ll checkpoint active snippets, patch that selector family only, and screenshot the tab strip."
Do not write a long workflow report unless:
- the user asks for a plan, audit, review, or explanation.
- You are running evals or building this skill.
- You are refactoring without visual changes.
- The request is ambiguous enough that acting first would be risky.
The value is in preventing bad CSS loops while still moving quickly.
Use The Reference
Read references/workflow-reference.md when:
- the user names a visible Obsidian object in natural language.
- The requested target could be more than one Obsidian layer.
- A screenshot shows "nothing changed," "still wrapped," "not lifted," uneven edges, washed-out surfaces, or unreadable icons.
- You are refactoring active snippets without changing the accepted look.
- You need the Obsidian surface map, change-type map, or failure-pattern list.
The reference is Obsidian-specific. Use it before treating the UI as an unknown web page.
Operating Loop
- Start from the live vault.
- Read
<vault>/.obsidian/appearance.json. - Treat
enabledCssSnippetsas the active styling source of truth. - Read active snippets before archives, backups, or old experiments.
- Translate the user's phrase into an Obsidian object and owning layer.
- Classify the change type: color, readability, lift, shape, structure, density, simplification, workflow, or refactor.
- Save a named checkpoint before subjective edits: copy the active snippets to
.obsidian/snippet-archive/, never into.obsidian/snippets, so the snippet picker stays clean. - Re-read the exact current block, then edit one owning layer: stage, shell, header, wrapper, or child. Formatting reshapes the file; a patch written from a remembered shape misses mechanically.
- Format CSS.
- Reload/focus Obsidian and screenshot the exact affected area.
- Use the screenshot and the user's correction as evidence.
- If it fails, inspect ownership or restore; do not keep piling CSS onto the same wrong target.
- Refactor only after the user accepts the visual state.
Translate Before Editing
The user will usually name what they see, not the selector:
- "tabs above the note"
- "arrows/book/dots above the note"
- "left side note buttons"
- "right sidebar"
- "links in those little areas"
- "the thing around the note"
- "selected icon"
- "top-left white corner"
Before editing, map the phrase:
user phrase -> visible object -> Obsidian layer -> likely selector/settings surface -> change type -> owning layerSay the mapping back when it could be ambiguous:
"When you say the tabs above the note, I am treating that as the workspace tab headers, not the arrows/book/dots row inside the note pane."
This is the main mistake-prevention step. Most frustrating failures came from changing a plausible element that was not the object the user meant, or changing a child when the wrapper/header/stage owned the visible shape.
Stable Layer Stack
Use this compact map first, then verify exact selectors in the live vault:
| the user points at | Usually means |
| top-left white/native area | titlebar/native chrome or adjacent app header |
| tabs above note | workspace tab headers |
| plus next to tab | new tab control |
| green/top bar | app frame or tab header container |
| far-left icons | ribbon / side dock |
| selected side icon | active side-dock tab header plus icon state |
| buttons above file list | file explorer nav controls |
| left note/folder buttons | file explorer tree rows |
| vault name/footer | side dock profile/footer |
| arrows/book/dots above note | markdown view header |
| note/page/paper | markdown leaf, editor, or readable surface |
| note shadow/lift/edge | stage, shell, gutter, overflow, or pseudo-element relationship |
| properties | metadata container or Properties View workflow |
| links | internal link spans in reading/editing modes |
| right sidebar | right workspace split and utility leaves |
| linked mentions/backlinks | backlinks plugin result groups |
| graph | graph plugin leaf/canvas |
| bottom stats | status bar |
The visible object and backend layer should be treated as stable across Obsidian work. Exact class names can vary by theme/plugin/app version, so verify in the live vault before patching.
Change-Type Split
The same object needs different work depending on the request:
- Color/accent: update background, text, border, icon stroke/fill, and active/hover/focus states together.
- Readability: check rendered contrast, especially for icons on colored toolbars.
- Lift/depth: decide foreground, stage, shell, gutter, overflow, and exterior shadow. Lift is a relationship, not just
box-shadow. - Rounded corners: check parent shell, child radius, overflow, and adjacent background.
- Structure: style the wrapper/header/shell that owns the visible shape.
- Simplification: remove wrappers, borders, gradients, shadows, or pseudo-elements before adding more treatment.
- Properties/workflow: consider Obsidian's Properties View or display settings before CSS-compressing metadata.
- Refactor: preserve cascade order and verify the screenshot does not change.
If a target needs two change types, do two passes. For example, make side-dock icons readable first, then tune the selected-state color.
What To Change First
Start with:
- active CSS snippets from
appearance.json - Obsidian settings when the issue is a workspace behavior
- Style Settings or theme variables when the change should remain tunable
- stable Obsidian wrappers: tab headers, view headers, pane shells, side docks, file rows, note surface, backlinks groups
Avoid changing first:
- Obsidian app bundle files
- community plugin source files
- installed theme source files
- vault content just to force visual styling
- app internals/minified code before active snippets and theme CSS are ruled out
Ask for explicit confirmation before:
- switching themes
- disabling snippets or plugins
- hiding/moving properties as a workflow change
- changing global typography or editor density substantially
- deleting archived experiments
- changing files outside
.obsidian/snippetsor Obsidian settings
Screenshot Gate
CSS validity is not visual success. The screenshot is product truth.
For every meaningful visual pass:
- Save checkpoint.
- Patch.
- Format CSS.
- Reload or focus Obsidian.
- Screenshot the affected area.
- Compare the screenshot to the complaint.
If another window covers Obsidian, retake the screenshot. Verify the verifier: confirm Obsidian is actually frontmost before trusting a capture (AppleScript can check the frontmost process). If the issue is tiny, capture just that region — screencapture -R<x,y,w,h> out.png — around the edge, icon, tab, row, or pane.
If the screenshot disproves the fix, keep working, restore, or say it failed. Do not close as if formatting proved success.
Failure Signals
the user's corrections are selector evidence:
- "nothing changed" means wrong selector, wrong layer, clipping, coverage, or override.
- "still wrapped" usually means both wrapper and child are styled.
- "not lifted" means the stage/shell/gutter relationship is wrong or too subtle.
- "right side got lighter" points to an overlay or pseudo-element on top of the note.
- "icon is impossible to see" means active/inactive button fill and icon color must be handled together.
- "overdone" often means remove treatment before adding another one.
If a direction fails twice, restore the last good checkpoint and change the ownership model.
Refactor Rule
Do not refactor during taste exploration.
When the user likes the look:
- Save a baseline checkpoint.
- Add or update a file map and section headers.
- Preserve selector order unless changing it intentionally.
- Format CSS.
- Check the diff for accidental visual changes.
- Screenshot Obsidian.
- Archive inactive iterations outside
.obsidian/snippets.
CSS size is usually less dangerous than cascade confusion and a messy active snippet picker.
Closing Report
When done, keep the closeout short. Report:
- active snippet files changed
- checkpoint paths saved
- what user phrase mapped to which Obsidian layer
- what was screenshot-verified
- anything not verified or intentionally deferred
Avoid explaining the whole workflow after every small pass. The workflow should be visible in the actions: checkpoint, scoped edit, screenshot, and evidence-based next step.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

