better-LVGL-for-dsh
knows better LVGL for dsh
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 19, 2026
- Updated
- Aug 19, 2026
Introduction
better-LVGL-for-dsh
English | 中文
An offline LVGL 8.4 knowledge skill pack for DeepSeek Harness (dsh) — it teaches the agent to write correct LVGL v8 API code and, above all, to stop mixing in v9 APIs (the single most common failure mode of LLM-generated LVGL code).
- Plugin form: dsh bundle (
dsh.bundledeclaration inpackage.json+cordis.patch.ymlpatch row) - Capability path: Cordis plugin → runtime skills registered on
ctx.skills→ the stockdsh-tool-skillconsumer → the model-facing skill catalog andskillloader - Skill format: Agent Skills standard (
SKILL.md+ YAML frontmatter); pure ESM, zero dependencies, no build step
Why
Large language models have seen far more LVGL v9 content than v8.4, so they routinely produce code that mixes the two — e.g. lv_display_create() (v9) next to lv_disp_drv_t (v8), or lv_async_call() which does not exist in v8.4 at all. This pack pins the agent to v8.4 facts with nine focused, on-demand skills.
Skills
| Skill | Coverage |
|---|---|
lvgl84 | Entry point & router: v8/v9 API confusion anchors, skill map, minimal working skeleton |
lvgl84-core | Object model, screens, create/delete, coordinates/alignment/sizing, flags, scrolling |
lvgl84-widgets | Quick reference for all 30+ built-in widgets: create functions and widget-specific APIs |
lvgl84-style | Style system: shared vs local styles, part/state selectors, themes, transitions |
lvgl84-event | Full event-code table, user_data, event bubbling, keypad/encoder groups, lv_msg |
lvgl84-layout | Flex & Grid layouts in full, with a CSS-to-LVGL cheat sheet |
lvgl84-porting | lv_conf.h, display flush_cb, input drivers, tick, double-buffer + DMA, thread safety |
lvgl84-pitfalls | Symptom→cause→fix table: garbled screen, hangs, OOM, dead clicks, CJK fonts |
lvgl84-migration | v7→v8.4 migration: renamed/removed widgets, rewritten styles/events/drivers |
Installation
# From GitHub
dsh plugin --profile web add github:sa998aaron/better-LVGL-for-dsh
# Or from a local clone
dsh plugin --profile web add <absolute path to this repo>
Reload the profile afterwards. The lvgl84-* skills then appear in the model-facing skill catalog and load on demand; you can also invoke one explicitly with a /lvgl84-style-style gesture.
Verify it works
Ask:
Write an LVGL 8.4 UI with a title bar and three buttons.
If the generated code uses lv_obj_create / lv_obj_set_flex_flow / lv_obj_add_event_cb — and not v9's lv_display_create — the plugin is doing its job.
Layout
better-LVGL-for-dsh/
├── package.json # dsh.bundle declaration
├── cordis.patch.yml # Cordis composition patch row
├── index.js # Entry: scans skills/ and registers each on ctx.skills
└── skills/<name>/SKILL.md
Adding your own skills
Create skills/<kebab-case-name>/SKILL.md:
---
name: my-skill
description: One line on what it is and when to use it.
whenToUse: Optional trigger description
---
Body (Markdown)…
Reload the plugin; the directory is rescanned at apply time.