read-only demo

Videos akk6KRlcwW4

OpenClaw in Your Hand: Building a Physical AI Terminal - Lech Kalinowski, Callstack

index_state ready data_status ok

AI Engineer· published 2026-06-28· 0:24:35· en-US· indexed 2026-08-11 06:05

Open on YouTube

Scene timeline

  1. Shot 0, 0:00 to 0:25, 1 of 1 keyframes kept
  2. Shot 1, 0:25 to 0:50, 0 of 1 keyframes kept
  3. Shot 2, 0:50 to 1:15, 1 of 1 keyframes kept
  4. Shot 3, 1:15 to 1:40, 0 of 1 keyframes kept
  5. Shot 4, 1:40 to 2:05, 0 of 1 keyframes kept
  6. Shot 5, 2:05 to 2:30, 0 of 1 keyframes kept
  7. Shot 6, 2:30 to 3:02, 1 of 1 keyframes kept
  8. Shot 7, 3:02 to 3:33, 0 of 1 keyframes kept
  9. Shot 8, 3:33 to 4:05, 0 of 1 keyframes kept
  10. Shot 9, 4:05 to 4:33, 1 of 1 keyframes kept
  11. Shot 10, 4:33 to 5:01, 0 of 1 keyframes kept
  12. Shot 11, 5:01 to 5:29, 0 of 1 keyframes kept
  13. Shot 12, 5:29 to 6:06, 1 of 1 keyframes kept
  14. Shot 13, 6:06 to 6:40, 1 of 1 keyframes kept
  15. Shot 14, 6:40 to 7:14, 0 of 1 keyframes kept
  16. Shot 15, 7:14 to 7:44, 1 of 1 keyframes kept
  17. Shot 16, 7:44 to 8:13, 0 of 1 keyframes kept
  18. Shot 17, 8:13 to 8:45, 1 of 1 keyframes kept
  19. Shot 18, 8:45 to 9:16, 0 of 1 keyframes kept
  20. Shot 19, 9:16 to 9:47, 0 of 1 keyframes kept
  21. Shot 20, 9:47 to 10:25, 1 of 1 keyframes kept
  22. Shot 21, 10:25 to 10:50, 1 of 1 keyframes kept
  23. Shot 22, 10:50 to 11:16, 0 of 1 keyframes kept
  24. Shot 23, 11:16 to 11:41, 0 of 1 keyframes kept
  25. Shot 24, 11:41 to 12:07, 0 of 1 keyframes kept
  26. Shot 25, 12:07 to 12:36, 0 of 1 keyframes kept
  27. Shot 26, 12:36 to 13:06, 0 of 1 keyframes kept
  28. Shot 27, 13:06 to 13:35, 0 of 1 keyframes kept
  29. Shot 28, 13:35 to 14:05, 0 of 1 keyframes kept
  30. Shot 29, 14:05 to 14:41, 1 of 1 keyframes kept
  31. Shot 30, 14:41 to 15:12, 1 of 1 keyframes kept
  32. Shot 31, 15:12 to 15:48, 1 of 1 keyframes kept
  33. Shot 32, 15:48 to 16:25, 0 of 1 keyframes kept
  34. Shot 33, 16:25 to 16:27, 1 of 1 keyframes kept
  35. Shot 34, 16:27 to 16:29, 0 of 1 keyframes kept
  36. Shot 35, 16:29 to 16:31, 0 of 1 keyframes kept
  37. Shot 36, 16:31 to 16:33, 0 of 1 keyframes kept
  38. Shot 37, 16:33 to 16:35, 0 of 1 keyframes kept
  39. Shot 38, 16:35 to 16:37, 0 of 1 keyframes kept
  40. Shot 39, 16:37 to 16:39, 0 of 1 keyframes kept
  41. Shot 40, 16:39 to 16:41, 0 of 1 keyframes kept
  42. Shot 41, 16:41 to 16:43, 0 of 1 keyframes kept
  43. Shot 42, 16:43 to 16:45, 0 of 1 keyframes kept
  44. Shot 43, 16:45 to 16:47, 0 of 1 keyframes kept
  45. Shot 44, 16:47 to 16:49, 0 of 1 keyframes kept
  46. Shot 45, 16:49 to 16:51, 0 of 1 keyframes kept
  47. Shot 46, 16:51 to 16:55, 0 of 1 keyframes kept
  48. Shot 47, 16:55 to 16:57, 0 of 1 keyframes kept
  49. Shot 48, 16:57 to 16:59, 0 of 1 keyframes kept
  50. Shot 49, 16:59 to 17:01, 0 of 1 keyframes kept
  51. Shot 50, 17:01 to 17:03, 0 of 1 keyframes kept
  52. Shot 51, 17:03 to 17:05, 0 of 1 keyframes kept
  53. Shot 52, 17:05 to 17:07, 0 of 1 keyframes kept
  54. Shot 53, 17:07 to 17:09, 0 of 1 keyframes kept
  55. Shot 54, 17:09 to 17:11, 0 of 1 keyframes kept
  56. Shot 55, 17:11 to 17:52, 1 of 1 keyframes kept
  57. Shot 56, 17:52 to 18:18, 1 of 1 keyframes kept
  58. Shot 57, 18:18 to 18:45, 1 of 1 keyframes kept
  59. Shot 58, 18:45 to 19:12, 1 of 1 keyframes kept
  60. Shot 59, 19:12 to 19:38, 1 of 1 keyframes kept
  61. Shot 60, 19:38 to 20:05, 1 of 1 keyframes kept
  62. Shot 61, 20:05 to 20:32, 1 of 1 keyframes kept
  63. Shot 62, 20:32 to 20:59, 1 of 1 keyframes kept
  64. Shot 63, 20:59 to 21:25, 1 of 1 keyframes kept
  65. Shot 64, 21:25 to 21:52, 1 of 1 keyframes kept
  66. Shot 65, 21:52 to 22:19, 1 of 1 keyframes kept
  67. Shot 66, 22:19 to 22:45, 0 of 1 keyframes kept
  68. Shot 67, 22:45 to 23:12, 1 of 1 keyframes kept
  69. Shot 68, 23:12 to 23:15, 0 of 1 keyframes kept
  70. Shot 69, 23:15 to 23:17, 1 of 1 keyframes kept
  71. Shot 70, 23:17 to 23:19, 0 of 1 keyframes kept
  72. Shot 71, 23:19 to 23:21, 0 of 1 keyframes kept
  73. Shot 72, 23:21 to 23:23, 0 of 1 keyframes kept
  74. Shot 73, 23:23 to 23:25, 0 of 1 keyframes kept
  75. Shot 74, 23:25 to 23:27, 0 of 1 keyframes kept
  76. Shot 75, 23:27 to 23:29, 1 of 1 keyframes kept
  77. Shot 76, 23:29 to 23:31, 0 of 1 keyframes kept
  78. Shot 77, 23:31 to 23:33, 0 of 1 keyframes kept
  79. Shot 78, 23:33 to 23:35, 0 of 1 keyframes kept
  80. Shot 79, 23:35 to 23:37, 0 of 1 keyframes kept
  81. Shot 80, 23:37 to 23:39, 0 of 1 keyframes kept
  82. Shot 81, 23:39 to 23:41, 0 of 1 keyframes kept
  83. Shot 82, 23:41 to 23:43, 0 of 1 keyframes kept
  84. Shot 83, 23:43 to 23:47, 0 of 1 keyframes kept
  85. Shot 84, 23:47 to 23:49, 0 of 1 keyframes kept
  86. Shot 85, 23:49 to 23:51, 0 of 1 keyframes kept
  87. Shot 86, 23:51 to 23:53, 0 of 1 keyframes kept
  88. Shot 87, 23:53 to 23:55, 0 of 1 keyframes kept
  89. Shot 88, 23:55 to 23:57, 0 of 1 keyframes kept
  90. Shot 89, 23:57 to 23:59, 0 of 1 keyframes kept
  91. Shot 90, 23:59 to 24:01, 0 of 1 keyframes kept
  92. Shot 91, 24:01 to 24:05, 0 of 1 keyframes kept
  93. Shot 92, 24:05 to 24:07, 0 of 1 keyframes kept
  94. Shot 93, 24:07 to 24:09, 0 of 1 keyframes kept
  95. Shot 94, 24:09 to 24:11, 0 of 1 keyframes kept
  96. Shot 95, 24:11 to 24:13, 0 of 1 keyframes kept
  97. Shot 96, 24:13 to 24:15, 0 of 1 keyframes kept
  98. Shot 97, 24:15 to 24:17, 0 of 1 keyframes kept
  99. Shot 98, 24:17 to 24:19, 0 of 1 keyframes kept
  100. Shot 99, 24:19 to 24:21, 0 of 1 keyframes kept
  101. Shot 100, 24:21 to 24:23, 0 of 1 keyframes kept
  102. Shot 101, 24:23 to 24:25, 0 of 1 keyframes kept
  103. Shot 102, 24:25 to 24:27, 0 of 1 keyframes kept
  104. Shot 103, 24:27 to 24:29, 0 of 1 keyframes kept
  105. Shot 104, 24:29 to 24:31, 0 of 1 keyframes kept
  106. Shot 105, 24:31 to 24:33, 0 of 1 keyframes kept
  107. Shot 106, 24:33 to 24:35, 0 of 1 keyframes kept

107 shot(s).

keyframes kept every frame deduplicated

What was stored

cues
150
whisperx 150
chunks
40
from 150 cues
keyframes
28
kept of 107 captured
frames with text
28
467 lines read
chapters
0
from the source metadata
keyframe bytes
10.1 MB
word timings on 150 cues

Provenance

Each pipeline stage, its state and the model that produced it
stage state model started took
fetch done 2026-08-11 06:00 1m 28s
stt done 2026-08-11 06:02 20s
chunk done 2026-08-11 06:02 0s
text_embed done 2026-08-11 06:02 0s
keyframe done 2026-08-11 06:02 2m 47s
ocr done 2026-08-11 06:05 13s
frame_embed done 2026-08-11 06:05 4s

Frames, and what the machine read

  • 0:14 #0 done14 line(s)

    shot 0·sharpness 579.3

    1. OF0.51
    2. /Users/lech.kalinowski/Presentation%20AlEWF2026/Presentation/vault-ale-2026.htmi0.98
    3. wok0.95
    4. YAULT0.90
    5. V1.0-RC80.92
    6. WIFI BATT 91%0.94
    7. A1WF 28260.91
    8. VAULT1.00
    9. AI ENGINEER WORLD'S FAIR.0.96
    10. 20261.00
    11. OpenClaw in Your Hand - a physical AI terminal for local LLM0.98
    12. agents.1.00
    13. An instrument, not an app.1.00
    14. LECH KALINOWSKI, PH.D. SENIOR AI SYSTEM ENGINEER BCALLSTACK0.97
  • 0:39 #1 skipped

    shot 1·duplicate of #0

  • 1:04 #2 done14 line(s)

    shot 2·sharpness 615.8

    1. On0.57
    2. /Users/lech.kalinowski/Presentation%20AlEWF2026/Presentation/vault-aie-2026.htmi0.96
    3. won0.70
    4. VAULT0.92
    5. V1.0-RC80.91
    6. WIFI BATT 91N0.84
    7. AIWF 20260.95
    8. VAULT1.00
    9. AI ENGINEER WORLD'S FAIR.0.95
    10. 20261.00
    11. OpenClaw in Your Hand - a physical AI terminal for local LLM0.97
    12. agents.1.00
    13. An instrument, not an app.1.00
    14. LECH KALINOWSKI. PH.D. SENIOR AI SYSTEM ENGINEER BCALLSTACK0.97
  • 1:20 #3 skipped

    shot 3·duplicate of #2

  • 1:54 #4 skipped

    shot 4·duplicate of #0

  • 2:12 #5 skipped

    shot 5·duplicate of #0

  • 2:39 #6 done15 line(s)

    shot 6·sharpness 1005.1

    1. /Presentation/vault-aie-2026.htmi0.99
    2. D0.73
    3. AWork0.82
    4. (callatack)0.95
    5. THE PREMISE1.00
    6. Shell Ready1.00
    7. Most AI lives in a1.00
    8. chat bubble on a1.00
    9. glowing screen0.99
    10. Vault leans the other1.00
    11. way - calm, text-first,0.99
    12. made to be read.1.00
    13. W0.60
    14. KINDLE CALM- TERMINAL HONESTY0.97
    15. 0.97
  • 3:05 #7 skipped

    shot 7·duplicate of #6

  • 3:37 #8 skipped

    shot 8·duplicate of #6

  • 4:19 #9 done15 line(s)

    shot 9·sharpness 1128.6

    1. OFe0.74
    2. kalinowski/Presentation%20AIEWF2026/Presentation/vault-ale-2026.htmi0.98
    3. Work0.99
    4. (callstack)0.98
    5. WHAT IT DOES1.00
    6. One device . four modes · one slash command0.96
    7. /SHELL1.00
    8. /ASSIST1.00
    9. Bare-metal terminal - local + remote commands.0.99
    10. LLM chat. Replies render to e-paper.0.99
    11. /CONTROL1.00
    12. /RPG1.00
    13. Autonomous OpenClaw agent - the agentic mode.0.99
    14. LLM-native text RPG - 4 worlds · 16 classes.0.94
    15. Type - OLED. Long replies → e-paper, paged with the knob.0.98
  • 4:47 #10 skipped

    shot 10·duplicate of #9

  • 5:23 #11 skipped

    shot 11·duplicate of #9

  • 5:47 #12 done16 line(s)

    shot 12·sharpness 1303.1

    1. ch.kalinowsk/Presentation%20AIEWF2026/Presentation/vault-aie-2026.htmi0.96
    2. 0.85
    3. 00.62
    4. Work0.96
    5. (callstack)0.99
    6. THE ONE DESIGN CHOICE THAT PAID OFF0.99
    7. Two displays. Two jobs.1.00
    8. FIRST DISPLAY - ERISSIVE0.95
    9. OLED· live surface0.97
    10. 128×64 ~20 Hz, Keystroke, mode, spinner, page counter.0.98
    11. RPG SCIFI1.00
    12. SECOND DISPLAY - BISTABLE0.99
    13. E-paper · content surface0.97
    14. 800×488 - ~3 s. A page you sit and read, Zero static power.0.95
    15. response or page turn.1.00
    16. OLED updates on every keypress; e-paper only on a new0.99
  • 6:32 #13 done14 line(s)

    shot 13·sharpness 1386.7

    1. OFe0.73
    2. /Users/lech.kalinowski/Presentation%20AlEWF2026/Presentation/vault-aie-2026.htmi0.97
    3. Work0.98
    4. (callstack)0.94
    5. THE SURFACES1.00
    6. From an LLM reply to a 1-bit page0.98
    7. Broker shapes the text - strips markdown, caps length,0.99
    8. paginates the model's reply server-side.1.00
    9. Firmware renders in 1 bit - one 5×7 font at five scales, a0.97
    10. 4-px grid, a 50% dither for the only "tone."1.00
    11. Fixed, static buffers - pages live in pre-allocated memory;0.99
    12. no markdown engine, no malloc on the MCU.1.00
    13. Kindle readability · Braun instrument panel - NASA checklist0.95
    14. card.1.00
  • 7:06 #14 skipped

    shot 14·duplicate of #13

  • 7:20 #15 done22 line(s)

    shot 15·sharpness 1189.7

    1. wski/Presentation20AIEWF2026/Presentation/vault-aie-2026.htmi0.96
    2. D0.50
    3. Work0.97
    4. (callstack)0.95
    5. THE STACK0.97
    6. Runs entirely off a single 18650 cell1.00
    7. MSSTACK0.97
    8. COMPONENT0.99
    9. MODEL0.94
    10. MCU1.00
    11. ESP32-S3 - dual-core 240 MHz0.97
    12. OLED1.00
    13. SSD1306 128×64· software I2C0.97
    14. Keyboard1.00
    15. M5Stack CardKB QWERTY0.97
    16. Encoder1.00
    17. KY-040 rotary + push1.00
    18. E-Paper1.00
    19. Waveshare 4.26" 800×4800.99
    20. Power1.00
    21. 18650 - TP4056 - buck-boost0.97
    22. task.1.00
  • 7:47 #16 skipped

    shot 16·duplicate of #15

  • 8:20 #17 done30 line(s)

    shot 17·sharpness 1365.3

    1. ① Fle0.59
    2. /Users/lech.kalinowski/Presentation%20AlEWF2026/Presentation/vault-aie-2026.htmi0.98
    3. D0.58
    4. Work0.85
    5. (callstack)0.92
    6. AI-NATIVE SYSTEM ARCHITECTURE1.00
    7. AI-native end to end - device, local backend, your models0.99
    8. VAULT firmware·0.97
    9. ON THE HETAL0.94
    10. ESP32-S31.00
    11. shell · assist · control · rpg0.89
    12. COMPACT JSON / HTTP OUER WIFI0.95
    13. INFERENCE RUNS ON THE LOCAL BACKEND0.98
    14. BACKEND - dispatch & guardrails0.95
    15. DEPENDENCY-FREE PYTHON0.98
    16. PORT 50800.92
    17. caps 1500 chars · strips markdowm0.95
    18. - paginates - fixed buffers - async worker0.95
    19. /CNAT0.70
    20. LLM1.00
    21. OpenClaw agent0.98
    22. ICLAW0.92
    23. RPG engine1.00
    24. /RPG0.80
    25. gpt-oss:1280 on TensorRT-LLM - OpenAI-compat ihle via LiteLiM0.90
    26. gateway + agents autonomous tool calls0.96
    27. worlds - sesslon prompts0.87
    28. TensorRT-LLM, exposed OpenAI-style through a LitelLM proxy -0.96
    29. Demo model: self-hosted gpt-oss:120b served by NVIDIA0.98
    30. fully lecal, no cloud.0.96
  • 9:00 #18 skipped

    shot 18·duplicate of #9

  • 9:22 #19 skipped

    shot 19·duplicate of #9

  • 10:13 #20 done20 line(s)

    shot 20·sharpness 1208.8

    1. Vault — Al Engineer World's0.91
    2. OFe0.59
    3. /Users/lech.kalinowski/Presentation%20AlEWF2026/Presentation/vault-aie-2026.htmi0.97
    4. 0.70
    5. Wak0.92
    6. (callstack)0.99
    7. THE AGENTIC LOOP. CONTROL MODE0.96
    8. OpenClaw in your hand1.00
    9. Type a task in /control → the backend shells out: openclaw0.99
    10. agent --json.0.98
    11. The agent runs itself - plans, calls tools, observes,0.99
    12. repeats over its own gateway.1.00
    13. You watch it think - OLED steps THINKING → ACTING; e-paper0.98
    14. renders the live tool-call checklist.1.00
    15. 100% local - your LAN, your model, your agent. No cloud, no0.98
    16. app.1.00
    17. Real run: OPENCLAW CMD: write java exanple app - the0.91
    18. agent's result paginated onte the panel, paged with the0.98
    19. knob.0.98
    20. 0.74
  • 10:40 #21 done14 line(s)

    shot 21·sharpness 588.3

    1. 0.81
    2. 00.62
    3. work0.86
    4. FIELD NOTES1.00
    5. Four traps that each cost a day1.00
    6. USE SOFTWARE I2C0.98
    7. A BOOST REGULATOR KILLS THE OLED0.99
    8. Hardware Mire dies with no pull-ups. Bit-bang it.0.98
    9. Sustained 3.8 V > abs-max 3.6 V. Buck-boost 1s mandatory.0.97
    10. GPIO 13 IS FSPI MISO0.99
    11. ENCODER PHANTOM PRESSES0.99
    12. Even at mIso = -1. Silent fallure. Moved DC to 17.0.93
    13. Rotation noise = phantom "exit." Two-sided lockout.0.99
    14. 0.61
  • 11:13 #22 skipped

    shot 22·duplicate of #21

  • 11:26 #23 skipped

    shot 23·duplicate of #21

Transcript

150 cues· 2,216 words· 11,809 chars

  1. 0:02 probably all of you once planned the cleanup activities.
  2. 0:07 And you can imagine, I also plan one weekend to clean up of my basement.
  3. 0:13 And I just went there and want to clean up all of the stuff there, throw up old washing machine.
  4. 0:24 And I just look at the corner there and realize there's something weird.
  5. 0:31 there lying on the floor so I just grab it look at the strange device looks a bit familiar but a bit old like from 80s with keyboard but with it weird this place of course covered with dust I just take it to my hand look at it
  6. 0:57 And I was completely surprised that device have a shell and it's on.
  7. 1:07 So I used my superpowers skills in the terminal and just I provided their simple question.
  8. 1:20 Who am I?
  9. 1:22 And the device responds in the weirdest way I could even imagine.
  10. 1:28 in the natural language.
  11. 1:32 So the story I just described to you, it can be a great story for marketing.
  12. 1:40 But honestly, I just wanted to build a device which is physical and AI native, like the device which comes from the future.
  13. 1:57 Hello.
  14. 1:58 My name is Lech Kalinowski.
  15. 2:01 I hold a PhD in physics.
  16. 2:04 And today I want to present you a device and a backend and a system I built over last couple of months.
  17. 2:14 And the whole story begins because I just simply wanted to build a remote controller to my OpenClaw instance on my DJX Spark.
  18. 2:31 and the story is simple because when you are just first think about the llms then you're not thinking about the audio about the generative generative videos or pictures first you're thinking about the text
  19. 2:53 And then I just get a bright idea that maybe I can use some kind of better display to read and type with my LLM.
  20. 3:06 Of course, on the market there is electronic paper, but I realized electronic paper can be a bit slow.
  21. 3:14 Of course, it's perfect for reading.
  22. 3:18 But if you just want to provide dynamically text to it, you probably need a faster display.
  23. 3:26 And then I just used, in my design, a simple connection of the OLED display, the small one, one color,
  24. 3:43 with the electronic paper display.
  25. 3:46 And then with this simple, let's say dual display approach, I realized I can build quite a powerful and energy efficient terminal to play with my claw.
  26. 4:08 And of course behind it there is some kind of lot of complications.
  27. 4:17 Because from one side I just wanted to build a remote control but from other side there is such a niche on the market and this is the AI native operational systems.
  28. 4:31 And when I just started to think more clearly about it, I just realized I can build such a system for my purposes.
  29. 4:40 But no with the super powerful computers, but with the small microcontrollers.
  30. 4:48 And I just design a system built in, let's say, four classes.
  31. 4:57 One is the internal shell to control the terminal itself, you know, system settings, basic configurations, Wi-Fi connection.
  32. 5:09 And within my idea to build an AI native device, I build an assist control.
  33. 5:18 And one thing which really surprised me, and I will explain you later, RPG mode.
  34. 5:29 And here it is.
  35. 5:33 I started to prototype DGX Spark at the
  36. 5:38 at the background here on the picture to this place.
  37. 5:43 One, it's a live surface.
  38. 5:45 That means the dynamic part, you can type the whole text provided is written there.
  39. 5:54 And when you are just trigger action, hit enter, then the whole render also happens on the second B-Stable electronic paper.
  40. 6:09 But there's a lot of complications and a lot of tech and a lot of steps you need to do to get a clear user experience and clear interface.
  41. 6:23 So I just found out a lot of the,
  42. 6:26 different approaches how to render properly on the two displays properly render the the the interface i just interact to control my llms and to get in responses and to do whatever i want with my djx spark through the through the open claw and this is the one of the approaches that you can just
  43. 6:50 have fixed static buffers and render one-bit images stored in the memory.
  44. 7:00 That means the pages live in a pre-allocated memory.
  45. 7:06 There's no Markdown engine and no malloc on the MCU side.
  46. 7:16 I just wanted really to show you how the system is really complicated here.
  47. 7:22 And this is not because I just wanted to use that much components.
  48. 7:30 It's because there is a huge need to build a power management system.
  49. 7:39 Because I just blow up two displays over my prototype build.
  50. 7:45 And I just needed to be sure that the current and the voltage is stable as possible.

Open at this second