Importing from TextBundle / TextPack (Bear, Craft)¶
When to use¶
When a user imports notes exported as TextBundle — a .textbundle folder, a
.textpack, or a Bear .bear2bk backup. Bear and Craft are the common sources. You
own it end to end. Read limestone-vault-conventions, working-with-collections, and
importing-from-obsidian (the shared attachment/tag model) first.
Run the import (one tool call)¶
Call limestone_import_notebook(path, collection_name) with the .textbundle /
.textpack / .bear2bk, or a folder containing several bundles. Returns the usual
summary + unconverted list.
How the import works (what the tool does)¶
A TextBundle is a folder of text.markdown + assets/ + info.json:
| TextBundle | Limestone |
|---|---|
| each bundle | one record (row + Markdown note) |
the first # heading (else the first line) |
the record title |
info.json creation/modification dates |
Created / Updated date properties (when present) |
inline #tags (Bear) + info.json tags |
real note tags |
 references |
the file, stored beside the note, embedded inline as ![[filename]] |
Finalizing (your job)¶
The importing-from-obsidian playbook applies. TextBundle-specific:
- Dates may be missing. Plain
.textbundle/.textpackoften carries no dates (they live in Bear's database, preserved only in.bear2bk). If the user needs accurate dates, ask them to re-export as.bear2bk. - Bear multi-word tags (
#multi word#) aren't captured by the inline#tagscan; add them by hand if the user relies on them. - Resolve
unconverteditems (unsupported asset types, unresolved embeds) as usual.
Evolving this skill¶
If a bundle emitter (a specific app's info.json shape) recurs with lost metadata,
work out the mapping and propose an update here or to importers/textbundle.py. Keep
the two in sync.