LimTout ce que les modules LIM utilisent : bureau, manette, stockage, sync, rendu.
npx @lim/devdocs init --consoleLes fenêtres sont des iframes indépendantes : aucun module ne recharge l'application.
import { openWindow, closeWindow, cycleWindow } from '@/lib/desktopStore';
openWindow('mail'); // ouvre LIM Mail dans une fenêtre
openWindow('drive'); // réutilise la fenêtre si elle existe
cycleWindow(1); // fenêtre suivante (LB / RB)DualSense, Xbox et Switch Pro. Flèches / stick = navigation spatiale, A = valider, B = fermer, Start = bureau.
useGamepad({
onBack: () => closeTopWindow(), // B / Circle
onMenu: () => toggleLauncher(), // Start
onCycle: (dir) => cycleWindow(dir) // LB / RB
});À partir de 1920 px, la racine passe à 21 px ; à 2560 px, à 27 px. Toute l'interface (rem) grandit d'un coup, y compris les Lim Fonts.
@media screen and (min-width: 1920px) { html { font-size: 21px; } }
@media screen and (min-width: 2560px) { html { font-size: 27px; } }Chargé avant l'application : comble Array.at/flat/flatMap, Object.fromEntries, Promise.allSettled, structuredClone, ResizeObserver, AbortController et remplace fetch par une lecture XHR binaire si besoin.
<script src="/console-polyfill.js"></script>
<script type="module" src="/src/main.jsx"></script>Compression gzip dans un Web Worker, empreinte SHA-256, et repli automatique en Base64 dans le stockage local quand IndexedDB est bloquée (PS5, Switch).
await limCore.put('docs', 'doc:42', { title: 'Rapport', body: '…' });
const doc = await limCore.get('docs', 'doc:42');
const stats = await limCore.stats();Hors-ligne, la requête est mise dans la file LIM Outbox. Le Service Worker la rejoue dès le retour du réseau, même application fermée.
await window.limQueue.queueRequest('/api/entities/LimDoc', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload),
});Chaque lettre est positionnée à ses coordonnées mesurées, à l'échelle du devicePixelRatio : net en 4K, fluide à 120 fps.
<CanvasFontPreview text="Bonjour" fontFamily="Recoleta" size={48} animate />import { base44 } from '@/api/base44Client';
const docs = await base44.entities.LimDoc.list('-created_date', 20);
await base44.entities.LimDoc.create({ title: 'Nouveau' });GET https://lim.base44.app/api/entities/LimDoc
Authorization: Bearer <token>Besoin d'un accès programmatique ? Lim Console gère les clés API, l'onglet NowCoin LBAA et les webhooks.