Obsidian Bases : le tutoriel complet (vue Kanban 1.14 comprise)
Bases est la fonction d’Obsidian qui affiche vos notes comme une base de données : tableau, galerie ou Kanban, à partir de leurs propriétés. Elle est intégrée à l’application, sans module à installer, et vos notes restent de simples fichiers Markdown.

Ce qu’est une base, et ce qu’elle n’est pas
Une base est un fichier .base qui ne contient aucune donnée. Il décrit une sélection : quelles notes afficher, quelles propriétés montrer, dans quel ordre. Les valeurs restent dans les notes. Quand vous changez une date dans le tableau, ObsidianUne application de notes gratuite pour Windows, Mac, Linux, iPhone et Android. Vos notes restent des fichiers Markdown sur votre ordinateur. Brievora est un vault, un dossier de notes et de vues que vous ouvrez dans Obsidian.obsidian.md l’écrit dans la propriété de la note concernée.
Prenons la refonte du site d’une boulangerie. Chaque tâche du projet est une note dont l’en-tête porte quatre propriétés :
---
type: task
project: "[[Refonte Boulangerie Martin]]"
status: En cours
due: 2026-10-23
---Une base filtrée sur type == "task" rassemble toutes ces notes dans un tableau, quel que soit le dossier où elles sont rangées. Une deuxième vue de la même base peut les montrer en colonnes, une par statut.
Ce qu’une base ne fait pas
- Elle ne lit pas le corps des notes. Les filtres portent sur les propriétés et sur les informations du fichier (nom, dossier, dates, liens, mots-clés). Une case à cocher écrite au milieu d’une note n’apparaît pas dans la base.
- Elle ne relie pas des tables entre elles comme Notion ou Airtable. Le lien entre une tâche et son projet passe par une propriété qui contient un lien vers la note du projet.
- Elle ne garde ni historique des modifications ni droits par personne. Le vault reste un dossier de fichiers, sauvegardé avec les outils que vous choisissez.

Créer sa première base en cinq minutes
Partons d’un vaultDans Obsidian, un vault est un dossier de votre ordinateur qu’Obsidian ouvre : vos notes, leurs pièces jointes et vos réglages. Brievora est un vault prêt à l’emploi.help.obsidian.md qui contient déjà quelques notes de tâches comme celle ci-dessus.
- Ouvrez la palette de commandes (Ctrl+P, ou Cmd+P sur Mac) et lancez « Bases : Créer une nouvelle base ». Autre chemin : clic droit sur un dossier dans l’explorateur de fichiers, puis « Nouvelle base ».
- Renommez le fichier, par exemple
Tâches.base. Sans filtre, la base affiche tous les fichiers du vault. - Cliquez sur « Filtre », puis « Ajouter un filtre », et posez la condition
typeégal àtask. Seules les tâches restent. - Cliquez sur « Propriétés » et cochez
project,statusetdue. Chacune devient une colonne. - Cliquez sur « Trier » et choisissez
due, ordre croissant. La tâche la plus urgente passe en tête.
Derrière l’interface, le fichier contient ce YAML. Vous pouvez aussi l’écrire à la main dans un éditeur de texte :
filters:
and:
- 'type == "task"'
views:
- type: table
name: Vue
order:
- file.name
- project
- status
- due
sort:
- property: due
direction: ASCFiltres, tri et regroupement
Une base a deux niveaux de filtres. Les filtres globaux s’appliquent à toutes les vues : c’est là que vous dites « seulement les tâches ». Les filtres de la vue s’ajoutent par-dessus. Une vue « Cette semaine » garde par exemple les tâches non terminées dont l’échéance tombe dans les sept prochains jours.
filters:
and:
- 'type == "task"'
- '!file.inFolder("Modèles")'
views:
- type: table
name: Cette semaine
filters:
and:
- 'status != "Fait"'
- 'due'
- 'date(due) <= today() + "7d"'Dans l’interface, and s’affiche « Toutes les conditions suivantes sont vraies », or devient « Au moins l’une des conditions suivantes est vraie » et not « Aucune des conditions suivantes n’est vraie ». La condition due seule écarte les notes qui n’ont pas d’échéance.
Une vue accepte plusieurs tris, mais un seul regroupement. Groupez les tâches par project et chaque projet forme un bloc avec son titre. Depuis la version 1.14, le menu des groupes permet de réordonner et de masquer des groupes, et les groupes se replient dans les vues tableau, galerie et liste.
Trois erreurs fréquentes
- Une même valeur écrite de deux façons (« En cours » et « en cours ») donne deux groupes. Fixez vos valeurs une fois, puis tenez-vous-y.
- Une échéance tapée en texte libre (« 23/10 ») ne se compare pas à
today(). Donnez le type Date à la propriété : dans une note, cliquez sur l’icône à gauche de son nom. - Vos modèles de notes portent les mêmes propriétés que vos tâches et se retrouvent dans la base. Le filtre
!file.inFolder("Modèles")les écarte.
Formules : dates, durées, conditions
Une formule calcule une colonne à partir des autres propriétés. Pour en créer une, cliquez sur « Propriétés », puis « Ajouter une formule », donnez-lui un nom et tapez l’expression. Une coche verte apparaît quand la syntaxe est valide. Une colonne formule se lit, mais ne se modifie pas dans le tableau.
formulas:
jours_restants: 'if(due, (date(due) - today()).days.round(0), "")'
en_retard: 'if(due, date(due) < today() && status != "Fait", false)'
echeance: 'if(due, if(formula.jours_restants < 0, "En retard", "Dans " + formula.jours_restants.toString() + " j"), "")'Soustraire deux dates donne une durée, pas un nombre. On en tire les jours avec .days, puis on arrondit avec .round(0). Sans l’arrondi, une échéance placée après le passage à l’heure d’hiver, le 25 octobre 2026, peut afficher 25,04 jours au lieu de 25 : l’heure gagnée cette nuit-là compte dans le calcul.
Pour décaler une date, ajoutez une durée entre guillemets : today() + "7d" pour dans sept jours, now() - "14d" pour il y a deux semaines.
Les fonctions qui servent le plus
| Fonction | Usage | Exemple |
|---|---|---|
today() | La date du jour, à minuit | date(due) < today() |
now() | La date et l’heure actuelles | file.mtime > now() - "14d" |
date() | Transforme un texte en date | date("2026-10-23") |
if() | Une valeur si la condition est vraie, une autre sinon | if(due, "Planifiée", "Sans date") |
.days et .round(0) | Une durée en jours entiers | (date(due) - today()).days.round(0) |
.format() | Affiche une date au format voulu | date(due).format("DD.MM.YYYY") |
.relative() | Une date en langage courant (« il y a 3 jours ») | file.mtime.relative() |
.contains() | Cherche une valeur dans une liste | tags.contains("urgent") |
file.hasTag() | Le fichier porte ce mot-clé, sous-mots-clés compris | file.hasTag("client") |
file.inFolder() | Le fichier est dans ce dossier ou un sous-dossier | file.inFolder("Projets") |
file.hasLink() | La note contient un lien vers ce fichier | file.hasLink("Refonte Boulangerie Martin") |
.toString() | Transforme un nombre en texte, pour l’assembler à des mots | formula.jours_restants.toString() + " j" |
Les vues : tableau, galerie, liste, Kanban
Une base peut contenir plusieurs vues des mêmes notes. Cliquez sur le nom de la vue en haut à gauche, puis « Ajouter une vue ». Chaque vue a ses propres filtres, colonnes, tris et sa mise en page.
| Mise en page | Ce qu’elle montre | Depuis |
|---|---|---|
| Tableau | Une ligne par note, une colonne par propriété, et des résumés en bas de colonne (somme, moyenne, nombre de cases cochées) | 1.9 |
| Galerie | Une carte par note, avec une image en tête si vous choisissez une propriété d’image | 1.9 |
| Liste | Une liste à puces ou numérotée | 1.10 |
| Kanban | Des colonnes, une par valeur de la propriété de regroupement | 1.14 |
| Carte géographique | Des épingles sur une carte, à partir de coordonnées (demande le plugin Maps) | 1.10 |
La vue Kanban
La vue Kanban est arrivée avec Obsidian 1.14, sortie le 5 octobre 2026. Chaque colonne correspond à une valeur de la propriété choisie dans « Grouper par ». Glisser une carte d’« À faire » vers « En cours » modifie la propriété status dans la note. Glisser l’en-tête d’une colonne change l’ordre des colonnes.
views:
- type: kanban
name: Kanban
groupBy:
property: status
direction: ASC
groupOrder:
- À faire
- En cours
- En attente
- Fait
columnWidth: 260
order:
- file.name
- project
- duegroupOrderdonne l’ordre des colonnes. Une valeur absente de cette liste n’a pas de colonne et ses notes disparaissent de la vue : listez toutes les valeurs possibles.- Seules les notes Markdown passent d’une colonne à l’autre. Si vous groupez par une formule, les cartes ne bougent plus.
columnWidthfixe la largeur des colonnes en pixels. Une carte peut aussi afficher une image de couverture tirée d’une propriété.
Vos tableaux sont encore dans le plugin communautaire Kanban ? Le guide Passer du plugin Kanban à Bases explique comment les déplacer sans rien perdre.
Intégrer une base dans une note
Une base s’affiche aussi au milieu d’une note. Écrivez ![[Tâches.base]], ou ![[Tâches.base#Cette semaine]] pour ouvrir une vue précise. La commande « BasesLa fonction de base de données intégrée à Obsidian : tableaux, cartes et Kanban construits à partir des propriétés de vos notes. Aucun plugin à installer.help.obsidian.md : Insérer une nouvelle base » crée une base et l’intègre d’un coup dans la note ouverte.
Vous pouvez aussi écrire la base dans la note elle-même, dans un bloc de code base. Elle n’existe alors que dans cette note.
Le mot-clé this rend une base réutilisable. Dans une base intégrée, this désigne la note qui l’accueille. Placez ce bloc dans la note du projet de la boulangerie : il n’affiche que les tâches de ce projet. Copiez-le dans la note d’un autre projet, il affiche celles de l’autre.
```base
filters:
and:
- 'type == "task"'
- 'project == this'
views:
- type: table
name: Tâches du projet
order:
- file.name
- status
- due
```C’est la méthode qui permet de gérer ses projets clients dans Obsidian : une fiche par projet, et dans chaque fiche, les vues qui le concernent.
Trois bases prêtes à copier
Créez un fichier vide dont le nom se termine par .base, collez le contenu, puis ouvrez-le dans Obsidian. Renommez les propriétés si les vôtres s’appellent autrement. Sous properties, gardez le préfixe note. devant le nom : sans lui, Obsidian ignore le nom d’affichage.
Suivi des tâches
filters:
and:
- 'type == "task"'
- '!file.inFolder("Modèles")'
formulas:
jours_restants: 'if(due, (date(due) - today()).days.round(0), "")'
en_retard: 'if(due, date(due) < today() && status != "Fait", false)'
properties:
note.status:
displayName: Statut
note.due:
displayName: Échéance
formula.jours_restants:
displayName: Jours restants
views:
- type: table
name: À faire
filters: 'status != "Fait"'
order:
- file.name
- project
- status
- due
- formula.jours_restants
sort:
- property: due
direction: ASC
- type: kanban
name: Kanban
groupBy:
property: status
direction: ASC
groupOrder:
- À faire
- En cours
- En attente
- Fait
order:
- file.name
- project
- due
- type: table
name: En retard
filters: 'formula.en_retard'
order:
- file.name
- project
- dueLectures et veille
filters: 'type == "lecture"'
properties:
note.author:
displayName: Auteur
note.status:
displayName: Statut
views:
- type: cards
name: Galerie
image: note.cover
filters: 'status != "Abandonné"'
order:
- file.name
- author
- status
- type: table
name: À lire
filters: 'status == "À lire"'
order:
- file.name
- author
- file.ctimeClients à relancer
filters: 'type == "client"'
formulas:
silence: 'if(last_contact, (today() - date(last_contact)).days.round(0), "")'
properties:
note.last_contact:
displayName: Dernier contact
formula.silence:
displayName: Jours sans contact
views:
- type: table
name: Tous les clients
groupBy:
property: status
direction: ASC
order:
- file.name
- city
- last_contact
- formula.silence
- type: table
name: À relancer
filters: 'formula.silence > 30'
order:
- file.name
- last_contact
- formula.silence
sort:
- property: formula.silence
direction: DESCQuestions
Bases fonctionne-t-il sur téléphone ?
Oui, Bases fait partie d’Obsidian sur iOS et Android. Pour retrouver les mêmes notes sur tous vos appareils, il faut synchroniser le vault, avec Obsidian Sync ou un autre service.
Quelle différence avec le plugin Dataview ?
Dataview est un module complémentaire avec son propre langage de requête. Il lit aussi le texte des notes, mais ses résultats sont en lecture seule. Bases est intégré à Obsidian, se règle à la souris et permet de modifier les propriétés directement dans le tableau.
Peut-on exporter une base vers un tableur ?
Oui. Le menu des résultats, en haut de la vue, propose de copier la vue dans le presse-papiers ou de l’exporter en CSV.
Une base affiche-t-elle aussi les PDF et les images ?
Oui, sans filtre, une base liste tous les fichiers du vault, pièces jointes comprises. Le filtre file.ext == "md" ne garde que les notes.