Tetromino User Guide

Welcome to Tetromino — a deterministic, one-way importer that brings your Are.na channels, blocks, and attachments into Obsidian as stable Markdown notes.


Table of Contents

  1. Overview
  2. Installation
  3. First Import Walkthrough
  4. Dry-Run Preview
  5. Settings Reference
  6. Troubleshooting
  7. FAQ

Overview

What Tetromino Does

What Tetromino Does Not Do


Installation

  1. Open SettingsCommunity Plugins in Obsidian.
  2. Turn off Safe Mode if it is on (Community Plugins require Safe Mode disabled).
  3. Click Browse and search for Tetromino.
  4. Click Install, then Enable.
  5. Open Tetromino Settings (under Community Plugins) and add your Are.na API token.

Manual Installation

  1. Download the latest release (main.js, manifest.json, and styles.css) from the Releases page.
  2. Create a folder named tetromino inside <your-vault>/.obsidian/plugins/ (must match the plugin id in manifest.json).
  3. Copy the three files into that folder.
  4. Restart Obsidian, then enable Tetromino under Community Plugins.

First Import Walkthrough

Step 1: Add Your API Token

  1. Generate a personal access token at https://www.are.na/developers/personal-access-tokens.
  2. In Obsidian, open SettingsCommunity PluginsTetromino.
  3. Paste your token into the API token field.
  4. Click Verify to confirm the token is valid.

Step 2: Create a Channel Mapping

A mapping tells Tetromino which Are.na channel goes into which vault folder.

  1. In Tetromino Settings, scroll to Channel mappings.
  2. Click + Add mapping.
  3. Enter the Are.na channel slug (the part of the URL after /channel/).
    • Example: for https://www.are.na/channel/design-inspiration, the slug is design-inspiration.
  4. Optionally set a custom vault folder.
    • If left blank, the default is Are.na/<channel-slug>.
  5. Ensure the enabled toggle is on.

Tip: If you have many channels, click Import my channels under Channel management to bulk-create mappings from your Are.na account. New mappings will be created in the Are.na/<slug> folders by default.

Step 3: Run Your First Import

  1. Open the Command Palette (Cmd/Ctrl + P).
  2. Run “Import all channels now”.
  3. Watch the status bar at the bottom of Obsidian for progress updates.
  4. When finished, a Sync Summary modal appears showing:
    • how many notes were created, updated, or skipped
    • per-file diffs for changed notes
    • any errors that occurred

You can also run “Import current channel” while viewing a note inside a mapped folder to import only that channel.


Dry-Run Preview

Before committing changes to your vault, you can preview exactly what Tetromino plans to do.

How to Run a Dry-Run

  1. Open the Command Palette.
  2. Run “Preview import (dry-run)” (or “Preview current channel import (dry-run)” for a single channel).
  3. The Sync Summary modal opens showing:
    • planned creations, updates, moves, and deletions
    • side-by-side diffs for files that would change
    • a banner at the top confirming this was a preview

Important: A dry-run does not write, move, or delete any files in your vault. It is safe to run at any time.

When to Use Dry-Run


Settings Reference

Authentication

Setting Description
API token Your Are.na personal access token. Stored in Obsidian plugin data.
Verify Button to validate the token against the Are.na API.

Content Rendering

Setting Default Description
Block file naming Block title How imported block notes are named. Options: Block title, Block ID, Title (ID).
Banner frontmatter field Off Adds a banner URL to frontmatter for the Banners plugin.
Banner field name banner The YAML key used for the banner field.
Banner image source priority Thumb first Whether to use the thumbnail or display image first.
Block description in frontmatter Off Adds arena_description to frontmatter when a block has a description.
Import block comments Off Imports Are.na block comments into a Comments section inside each note.
Import connected channels Off Adds a section listing other channels where the block appears.
Channel block preview image Off For blocks that are themselves channels, inserts a best-effort preview image link.
Channel index note naming index.md Filename for the channel index note. Choose index.md (Folder Note style) or match folder name.
Image handling Download to vault How image blocks are rendered: Download, Embed (Obsidian embed), or Link (external URL).
Attachment handling Download to vault How non-image attachments (PDFs, etc.) are rendered: Download or Link.
Downloaded attachment render Link Whether downloaded files appear as ![[embed]] or [link] in notes.
Attachment storage location Global folder Where downloaded files are stored: With channel notes, Global folder, or Custom folder.
Global attachment folder Are.na/Attachments Path used when storage location is Global folder.
Custom attachment folder (empty) Path used when storage location is Custom folder.
Add frontmatter On Include Are.na metadata (ID, class, URL, etc.) in YAML frontmatter.
Exclude block classes (empty) Comma-separated list of block classes to skip (e.g., Image, Media).

Notifications and Logging

Setting Default Description
Sync on startup Off Automatically import when Obsidian launches.
Sync interval (minutes) 0 Repeating auto-import schedule. Set to 0 to disable (default).
Show notifications On Show toast notices for import progress and completion.
Debug logging Off Write detailed logs to the Obsidian Developer Console.

Channel Management

Setting Description
Auto-enable imported channels New mappings from Import my channels are enabled by default.
Import my channels Bulk-create mappings for every channel in your Are.na account.
Backup channel mappings Save current mappings to a timestamped JSON file in Are.na/channel-mapping-backups/.
Restore latest backup Replace current mappings with the most recent backup.
Restore from file… Pick a specific historical backup file to restore.
Reset channel mappings Remove all mappings. Use with caution — back up first.

Per-Channel Overrides

Each mapping can override the global attachment storage strategy:


Troubleshooting

Invalid API Token

Slow Imports or Timeouts

Notes Are Not Updating

Assets Are Not Downloading

Fewer Blocks Than Expected

Sync Summary Shows Errors


FAQ

Is Tetromino a two-way sync?

No. Tetromino is a one-way importer: Are.na → Obsidian only. Changes you make in Obsidian are never pushed back to Are.na.

Can I set up automatic importing?

Yes, optionally. By default, imports are manual. You can enable:

Both are disabled by default so you remain in full control.

What happens if I delete a note imported by Tetromino?

The note is removed from your vault. The next import will recreate it if the block still exists on Are.na, because Tetromino does not track local deletions.

How do I update settings without re-importing all channels?

Simply change the setting and run “Import all channels now” again. Tetromino compares planned output against existing files and only updates notes where the content actually changes.

What Are.na content types are supported?

How do I troubleshoot import failures?

  1. Enable Debug logging in settings.
  2. Open the Obsidian Developer Console (Cmd/Ctrl + Shift + I).
  3. Run the import again and inspect the console output.
  4. Check the Are.na/import-history.md file in your vault for a timestamped log of past imports.

Can I use Tetromino offline?

No. Tetromino requires an active internet connection to fetch data from the Are.na API.

Is my Are.na token secure?

What is the Template Engine?

Tetromino includes an optional custom template system that lets you control the exact Markdown output for each block using Handlebars-like syntax:

---
title: "{{title}}"
arena_id: {{id}}
---

# {{title}}

{{content}}

Available variables include: title, id, class, content, description, image, arena_url, source_url, channel_title, channel_slug, comments, connected_channels, created_at, updated_at.

Enable it by setting templateEnabled: true (and optionally templateString) in <vault>/.obsidian/plugins/tetromino/data.json while Obsidian is closed. Template controls are not yet in the Settings tab UI — see Settings Reference — Custom Templates.


Next Steps

← Home · Developer Guide