1 00:00:00,000 --> 00:00:01,200 You know that feeling, right? 2 00:00:01,200 --> 00:00:03,240 It's a constant checking, refreshing a page, 3 00:00:03,240 --> 00:00:06,440 checking the build status, waiting for some update. 4 00:00:06,440 --> 00:00:07,480 It's exhausting. 5 00:00:07,480 --> 00:00:08,680 It just eats up your time. 6 00:00:08,680 --> 00:00:10,440 And honestly, your focus? 7 00:00:10,440 --> 00:00:12,760 What if you didn't have to do that anymore? 8 00:00:12,760 --> 00:00:16,920 Imagine having a digital helper, a sort of secret twin 9 00:00:16,920 --> 00:00:20,000 that just does all that repetitive web checking for you 10 00:00:20,000 --> 00:00:23,360 and only pings you when something actually changes. 11 00:00:23,360 --> 00:00:25,020 Well, today we're doing a deep dive 12 00:00:25,020 --> 00:00:26,560 into exactly that kind of tool. 13 00:00:26,560 --> 00:00:29,960 It's called Kibitser, the personal web assistant. 14 00:00:29,960 --> 00:00:32,040 We've gone through its GitHub repo, the docs, 15 00:00:32,040 --> 00:00:34,320 all the sources you gave us, our mission, 16 00:00:34,320 --> 00:00:36,000 to break down what Kibitser is, 17 00:00:36,000 --> 00:00:37,940 why being self-hosted is such a big deal here, 18 00:00:37,940 --> 00:00:40,840 and crucially, how easy it actually is for, well, 19 00:00:40,840 --> 00:00:43,280 even a beginner to get started automating this stuff. 20 00:00:43,280 --> 00:00:45,520 But before we jump in, a quick shout out to Safe Server 21 00:00:45,520 --> 00:00:46,960 for supporting this deep dive. 22 00:00:46,960 --> 00:00:49,080 Safe Server helps with hosting software like this 23 00:00:49,080 --> 00:00:51,440 and supports your digital transformation journey. 24 00:00:51,440 --> 00:00:54,400 You can find out more at www.safeserver.de. 25 00:00:54,400 --> 00:00:58,540 Okay, so this secret twin brother idea, 26 00:00:58,540 --> 00:01:00,080 the docs actually use that phrase, 27 00:01:00,080 --> 00:01:02,360 like a secret twin brother who does routine tasks 28 00:01:02,360 --> 00:01:04,040 and asks for nothing in return. 29 00:01:04,040 --> 00:01:05,520 I kinda like that description. 30 00:01:05,520 --> 00:01:07,400 Yeah, it's evocative, isn't it? 31 00:01:07,400 --> 00:01:09,660 And it really nails the core idea. 32 00:01:09,660 --> 00:01:13,320 Kibitzers is fundamentally monitoring software. 33 00:01:13,320 --> 00:01:17,220 Its job is to pull, check websites, APIs, files, 34 00:01:17,220 --> 00:01:19,760 whatever data source you point it at, again and again. 35 00:01:19,760 --> 00:01:21,960 And then, only when the specific bit of data 36 00:01:21,960 --> 00:01:24,360 you're watching changes, it does something. 37 00:01:24,360 --> 00:01:26,240 Usually, it sends you a notification. 38 00:01:26,240 --> 00:01:28,040 The whole point is shifting that burden, right? 39 00:01:28,040 --> 00:01:29,960 So you don't have to constantly check. 40 00:01:29,960 --> 00:01:33,280 It lets you, as they say, stay on the edge of events your way. 41 00:01:33,280 --> 00:01:35,480 And it's not some lockdown commercial thing, right? 42 00:01:35,480 --> 00:01:37,320 We should probably confirm its status. 43 00:01:37,320 --> 00:01:37,880 Absolutely. 44 00:01:37,880 --> 00:01:39,120 Yeah, the source is confirmed. 45 00:01:39,120 --> 00:01:42,560 It's FOSS, Free Open Source Software, MIT license, 46 00:01:42,560 --> 00:01:44,200 which is very permissive. 47 00:01:44,200 --> 00:01:46,960 And looking at GitHub, it seems pretty healthy. 48 00:01:46,960 --> 00:01:51,600 22 contributors, almost 800 commits, nearly 700 stars. 49 00:01:51,600 --> 00:01:54,120 It's definitely active and has a community around it. 50 00:01:54,120 --> 00:01:55,080 And what's under the hood? 51 00:01:55,080 --> 00:01:56,040 What makes it tick? 52 00:01:56,040 --> 00:01:59,120 It's overwhelmingly Python, like 96.7% Python code. 53 00:01:59,120 --> 00:02:00,600 The creators even mentioned Python 54 00:02:00,600 --> 00:02:03,080 is kind of the perfect language for Kibbutz, 55 00:02:03,080 --> 00:02:03,920 which makes sense, I think. 56 00:02:03,920 --> 00:02:04,520 Why is that? 57 00:02:04,520 --> 00:02:06,720 Well, Python just has this huge ecosystem 58 00:02:06,720 --> 00:02:11,000 for web scraping, network stuff, parsing data. 59 00:02:11,000 --> 00:02:13,600 All the things you need for a tool like this 60 00:02:13,600 --> 00:02:15,040 are readily available as libraries. 61 00:02:15,040 --> 00:02:17,520 It makes building these monitors much easier. 62 00:02:17,520 --> 00:02:18,480 Right, that makes sense. 63 00:02:18,480 --> 00:02:22,560 But OK, Python means setup, dependencies. 64 00:02:22,560 --> 00:02:24,460 If it's self-hosted, does that mean I suddenly 65 00:02:24,460 --> 00:02:26,440 need to be a server admin? 66 00:02:26,440 --> 00:02:31,080 And in a world full of cloud services, things like Zapier, 67 00:02:31,080 --> 00:02:33,520 why go to the trouble of self-hosting? 68 00:02:33,520 --> 00:02:35,720 That's really the core question, isn't it? 69 00:02:35,720 --> 00:02:38,040 And Kibitzer's documentation hits it head-on. 70 00:02:38,040 --> 00:02:40,240 It says pretty bluntly, self-hosted, 71 00:02:40,240 --> 00:02:42,000 trust no one with your credentials. 72 00:02:42,000 --> 00:02:43,200 That's the fundamental reason. 73 00:02:43,200 --> 00:02:44,120 Credentials. 74 00:02:44,120 --> 00:02:46,680 OK, so if you're monitoring sensitive stuff. 75 00:02:46,680 --> 00:02:47,360 Exactly. 76 00:02:47,360 --> 00:02:48,820 Think about some of the examples we'll get to, 77 00:02:48,820 --> 00:02:51,240 like checking your bank balance or maybe a private build 78 00:02:51,240 --> 00:02:52,520 server inside your company. 79 00:02:52,520 --> 00:02:54,960 You simply cannot, or at least shouldn't, 80 00:02:54,960 --> 00:02:57,960 hand over those logins to some third party cloud platform. 81 00:02:57,960 --> 00:02:59,760 Self-hosting keeps you in control. 82 00:02:59,760 --> 00:03:02,560 So it's about security and privacy, first and foremost. 83 00:03:02,560 --> 00:03:03,440 It is. 84 00:03:03,440 --> 00:03:06,080 But it's also about reach and flexibility. 85 00:03:06,080 --> 00:03:08,300 Because it's self-hosted, it runs wherever you run it. 86 00:03:08,300 --> 00:03:13,060 Windows, Linux, Mac, desktop, server, doesn't matter. 87 00:03:13,060 --> 00:03:14,240 And this is key. 88 00:03:14,240 --> 00:03:15,920 It can go wherever you can go. 89 00:03:15,920 --> 00:03:16,520 Meaning? 90 00:03:16,520 --> 00:03:18,480 Meaning, if you need to monitor something 91 00:03:18,480 --> 00:03:22,840 behind your corporate VPN, or a site that needs SSH access, 92 00:03:22,840 --> 00:03:25,280 or something only visible from your home network, 93 00:03:25,280 --> 00:03:27,000 Kibitzer can do that because it lives there 94 00:03:27,000 --> 00:03:29,360 on your machine or server, a typical cloud monitoring 95 00:03:29,360 --> 00:03:30,260 service. 96 00:03:30,260 --> 00:03:32,400 It hits that VPN wall and stops. 97 00:03:32,400 --> 00:03:35,040 Your self-hosted twin brother just carries on. 98 00:03:35,040 --> 00:03:36,760 OK, that's actually a huge advantage, 99 00:03:36,760 --> 00:03:38,720 especially for anything internal or sensitive. 100 00:03:38,720 --> 00:03:40,160 It's personal because it operates 101 00:03:40,160 --> 00:03:41,680 from your personal digital space. 102 00:03:41,680 --> 00:03:42,520 Precisely. 103 00:03:42,520 --> 00:03:43,800 And it's practical, too. 104 00:03:43,800 --> 00:03:45,800 The docs mentioned it's lightweight. 105 00:03:45,800 --> 00:03:48,800 It apparently can run on tiniest VM offered by cloud providers. 106 00:03:48,800 --> 00:03:50,800 So you're not looking at massive hosting costs. 107 00:03:50,800 --> 00:03:51,600 Oh, really? 108 00:03:51,600 --> 00:03:55,280 Yeah, they even suggest trying it on AWS free tier or GCP. 109 00:03:55,280 --> 00:03:56,360 Always free. 110 00:03:56,360 --> 00:03:58,760 So self-hosting doesn't have to break the bank, even 111 00:03:58,760 --> 00:04:00,540 for something running 24-7. 112 00:04:00,540 --> 00:04:02,080 All right, let's make this concrete. 113 00:04:02,080 --> 00:04:04,880 What kind of routine tasks are we actually talking about? 114 00:04:04,880 --> 00:04:06,800 What does a secret twin brother do? 115 00:04:06,800 --> 00:04:08,240 Any good examples from the docs? 116 00:04:08,240 --> 00:04:09,920 Oh, yeah, there's a good range. 117 00:04:09,920 --> 00:04:13,240 On the sort of developer IT side, 118 00:04:13,240 --> 00:04:16,640 there's the classic example, waiting for a long build 119 00:04:16,640 --> 00:04:18,320 on something like TeamCity to finish. 120 00:04:18,320 --> 00:04:20,760 Ah, yes, the eternal wheat. 121 00:04:20,760 --> 00:04:21,760 Exactly. 122 00:04:21,760 --> 00:04:23,800 Instead of hitting Refresh, Kibitzer 123 00:04:23,800 --> 00:04:25,360 just tells you when it's done. 124 00:04:25,360 --> 00:04:28,360 Or, say, tracking a specific bug fix 125 00:04:28,360 --> 00:04:30,960 release for a library you depend on. 126 00:04:30,960 --> 00:04:32,920 OK, that makes sense for tech stuff. 127 00:04:32,920 --> 00:04:36,040 What about more personal things, where that self-hosted trust 128 00:04:36,040 --> 00:04:36,880 really matters? 129 00:04:36,880 --> 00:04:38,460 Well, the examples get pretty personal. 130 00:04:38,460 --> 00:04:40,560 The docs mention a bank balance how-to. 131 00:04:40,560 --> 00:04:41,640 Whoa, OK. 132 00:04:41,640 --> 00:04:44,060 Yeah, and another success story someone shared 133 00:04:44,060 --> 00:04:47,680 was about pulling a Russian passport readiness status. 134 00:04:47,680 --> 00:04:49,920 Checking passport status. 135 00:04:49,920 --> 00:04:52,160 Wow, that's often some clunky government website 136 00:04:52,160 --> 00:04:53,760 you have to keep checking manually, right? 137 00:04:53,760 --> 00:04:54,480 Exactly. 138 00:04:54,480 --> 00:04:56,140 These are often tasks involving sites 139 00:04:56,140 --> 00:04:58,400 that don't have nice, clean APIs. 140 00:04:58,400 --> 00:05:00,400 They're messy, maybe require logins, 141 00:05:00,400 --> 00:05:01,860 maybe involve multiple steps. 142 00:05:01,860 --> 00:05:03,360 And these are definitely things you 143 00:05:03,360 --> 00:05:05,680 don't want some random third-party service logging 144 00:05:05,680 --> 00:05:06,680 into for you. 145 00:05:06,680 --> 00:05:07,920 No kidding. 146 00:05:07,920 --> 00:05:09,760 That passport example really highlights 147 00:05:09,760 --> 00:05:12,120 the value automating something genuinely annoying 148 00:05:12,120 --> 00:05:13,880 and time-consuming in the real world. 149 00:05:13,880 --> 00:05:14,400 Right. 150 00:05:14,400 --> 00:05:16,040 And Kipitzer is built for this. 151 00:05:16,040 --> 00:05:16,540 Yeah. 152 00:05:16,540 --> 00:05:18,320 The docs say it handles everything 153 00:05:18,320 --> 00:05:22,840 from raw SSH commands to complex browser scenarios. 154 00:05:22,840 --> 00:05:24,060 It knows protocols. 155 00:05:24,060 --> 00:05:25,840 It's not just grabbing simple text. 156 00:05:25,840 --> 00:05:28,280 OK, but monitoring bank balances, 157 00:05:28,280 --> 00:05:30,960 interacting with complex government sites, 158 00:05:30,960 --> 00:05:33,160 that sounds like it needs serious programming skills 159 00:05:33,160 --> 00:05:34,720 to set up the rules. 160 00:05:34,720 --> 00:05:37,040 How does Kipitzer make that part easy, especially 161 00:05:37,040 --> 00:05:38,440 for a beginner? 162 00:05:38,440 --> 00:05:41,260 This is where the assistant part really shines, I think. 163 00:05:41,260 --> 00:05:44,380 You don't define these tasks in Python code, generally. 164 00:05:44,380 --> 00:05:45,440 You define them in YAML. 165 00:05:45,440 --> 00:05:47,800 YAML, OK, the configuration file format. 166 00:05:47,800 --> 00:05:48,400 Right. 167 00:05:48,400 --> 00:05:50,920 And the key is that it's designed to be human-friendly. 168 00:05:50,920 --> 00:05:51,660 It's structured. 169 00:05:51,660 --> 00:05:52,840 It's readable. 170 00:05:52,840 --> 00:05:55,000 But here's the real magic, I think. 171 00:05:55,000 --> 00:05:58,080 You can change what it monitors or how it monitors just 172 00:05:58,080 --> 00:05:59,600 by tweaking that YAML file. 173 00:05:59,600 --> 00:06:02,640 No coding, no restarting complex processes. 174 00:06:02,640 --> 00:06:05,480 So if the bank website changes its layout slightly. 175 00:06:05,480 --> 00:06:07,240 You just adjust the selector in the YAML. 176 00:06:07,240 --> 00:06:09,240 Maybe it takes 30 seconds. 177 00:06:09,240 --> 00:06:11,880 It makes maintaining these checks much, much simpler 178 00:06:11,880 --> 00:06:13,560 than managing custom scripts. 179 00:06:13,560 --> 00:06:14,060 Gotcha. 180 00:06:14,060 --> 00:06:16,120 So the YAML is like the instruction manual 181 00:06:16,120 --> 00:06:17,080 for your assistant. 182 00:06:17,080 --> 00:06:19,540 Define the where, the how often. 183 00:06:19,540 --> 00:06:20,040 Pretty much. 184 00:06:20,040 --> 00:06:22,400 You set it up once in that central file. 185 00:06:22,400 --> 00:06:25,360 And then, as they say, sit back and relax. 186 00:06:25,360 --> 00:06:27,800 Kibitzer will notify you when something happens. 187 00:06:27,800 --> 00:06:29,680 And the notifications, how do they arrive? 188 00:06:29,680 --> 00:06:31,640 It integrates with common tools. 189 00:06:31,640 --> 00:06:34,640 The docs mention Slack and Mailgun specifically. 190 00:06:34,640 --> 00:06:37,360 So you can get alerts directly in your chat or email, 191 00:06:37,360 --> 00:06:38,640 wherever works best for you. 192 00:06:38,640 --> 00:06:40,840 OK, let's circle back to the beginner angle. 193 00:06:40,840 --> 00:06:41,760 We see the value. 194 00:06:41,760 --> 00:06:43,080 We see the power. 195 00:06:43,080 --> 00:06:45,280 But how easy is that initial step, 196 00:06:45,280 --> 00:06:46,800 getting it up and running? 197 00:06:46,800 --> 00:06:48,440 They seem to have focused on making 198 00:06:48,440 --> 00:06:49,920 that really straightforward. 199 00:06:49,920 --> 00:06:53,720 It's basically three steps using Python's package manager, PIP. 200 00:06:53,720 --> 00:06:55,680 Step one, install. 201 00:06:55,680 --> 00:06:57,360 Just PIP install Kibitzer. 202 00:06:57,360 --> 00:06:58,800 And it works with Python 2 and 3, 203 00:06:58,800 --> 00:07:00,400 which is good for flexibility. 204 00:07:00,400 --> 00:07:02,520 Step two, configure. 205 00:07:02,520 --> 00:07:04,840 And again, that whole configuration in one YAML file 206 00:07:04,840 --> 00:07:06,720 approach is key for beginners. 207 00:07:06,720 --> 00:07:08,240 Everything's in one place. 208 00:07:08,240 --> 00:07:09,800 Step three, run. 209 00:07:09,800 --> 00:07:11,360 Just type Kibitzer in your terminal. 210 00:07:11,360 --> 00:07:12,080 That's it. 211 00:07:12,080 --> 00:07:13,920 Install, configure, run. 212 00:07:13,920 --> 00:07:16,720 It seems designed to be a very gentle on-ramp. 213 00:07:16,720 --> 00:07:18,200 OK, simple start. 214 00:07:18,200 --> 00:07:22,800 But then, you mentioned complex browser scenarios, SSH commands. 215 00:07:22,800 --> 00:07:25,360 The sources also call it powerful. 216 00:07:25,360 --> 00:07:27,060 How does it bridge that gap? 217 00:07:27,060 --> 00:07:30,920 If I start simple, how hard is it to level up? 218 00:07:30,920 --> 00:07:31,800 That's the neat part. 219 00:07:31,800 --> 00:07:33,320 You don't really switch tools. 220 00:07:33,320 --> 00:07:36,840 You just add more capabilities to your YAML configuration. 221 00:07:36,840 --> 00:07:39,480 That powerful aspect comes from its built-in features 222 00:07:39,480 --> 00:07:40,640 and integrations. 223 00:07:40,640 --> 00:07:41,600 Like what? 224 00:07:41,600 --> 00:07:44,760 Well, simple page checking fails if the data 225 00:07:44,760 --> 00:07:47,720 is loaded with JavaScript after the page initially loads, right? 226 00:07:47,720 --> 00:07:49,000 Yeah, happens all the time. 227 00:07:49,000 --> 00:07:50,920 So Kibitzer can use Selenium for that. 228 00:07:50,920 --> 00:07:54,200 Selenium basically drives a real web browser behind the scenes. 229 00:07:54,200 --> 00:07:57,400 Your Kibitzer Assistant can then log in, click buttons, 230 00:07:57,400 --> 00:08:00,440 wait for things to load, just like a human would, 231 00:08:00,440 --> 00:08:03,520 and then grab the data it needs from the fully rendered page. 232 00:08:03,520 --> 00:08:06,980 Yeah, so it can handle those dynamic, modern web pages. 233 00:08:06,980 --> 00:08:09,000 It's not just scraping static HTML. 234 00:08:09,000 --> 00:08:10,360 It's actually interacting. 235 00:08:10,360 --> 00:08:10,860 Exactly. 236 00:08:10,860 --> 00:08:12,600 It's doing the tedious click work, 237 00:08:12,600 --> 00:08:14,680 and then to find the exact piece of information 238 00:08:14,680 --> 00:08:16,600 you want, like just the price on a product page, 239 00:08:16,600 --> 00:08:17,720 not the whole description. 240 00:08:17,720 --> 00:08:21,400 It supports things like XPath and CSS selectors. 241 00:08:21,400 --> 00:08:23,480 These are ways to precisely target 242 00:08:23,480 --> 00:08:27,160 a tiny piece of information within a huge web page. 243 00:08:27,160 --> 00:08:30,560 So you only get alerted if that specific price changes, 244 00:08:30,560 --> 00:08:32,800 or that specific status updates. 245 00:08:32,800 --> 00:08:36,200 Not just if anything on the page changes, much less noise. 246 00:08:36,200 --> 00:08:38,080 That precision is key. 247 00:08:38,080 --> 00:08:40,560 And can you extend it further if the built-in stuff isn't 248 00:08:40,560 --> 00:08:41,400 enough? 249 00:08:41,400 --> 00:08:42,480 Absolutely. 250 00:08:42,480 --> 00:08:45,760 You can plug in your own bash or Python scripts pretty easily. 251 00:08:45,760 --> 00:08:48,600 And there's a plug-in system for more complex extensions. 252 00:08:48,600 --> 00:08:50,920 Plus, they mention a vibrant, friendly community 253 00:08:50,920 --> 00:08:53,620 on Gitter, which is probably invaluable when you start 254 00:08:53,620 --> 00:08:55,540 getting into the more advanced configurations, 255 00:08:55,540 --> 00:08:57,240 like complex xBath queries. 256 00:08:57,240 --> 00:08:58,580 OK, so let's pull this all together. 257 00:08:58,580 --> 00:08:59,680 What's the takeaway here? 258 00:08:59,680 --> 00:09:03,200 Kibitzer seems to offer this potent mix of serious web 259 00:09:03,200 --> 00:09:05,960 automation power, but wrapped in a way that keeps you in control 260 00:09:05,960 --> 00:09:07,320 because it's self-hosted. 261 00:09:07,320 --> 00:09:09,700 That's critical for sensitive stuff like finances 262 00:09:09,700 --> 00:09:11,200 or government interactions. 263 00:09:11,200 --> 00:09:13,780 And importantly, it pairs that power with a simple setup 264 00:09:13,780 --> 00:09:15,760 using that YAML file, making it accessible 265 00:09:15,760 --> 00:09:17,760 even if you're just starting out with automation. 266 00:09:17,760 --> 00:09:19,520 It feels like a really nice balance. 267 00:09:19,520 --> 00:09:21,480 I think that's a fair summary. 268 00:09:21,480 --> 00:09:23,980 Simplicity to start, but with the power readily 269 00:09:23,980 --> 00:09:26,520 available when you need it, all while maintaining 270 00:09:26,520 --> 00:09:27,960 control and privacy. 271 00:09:27,960 --> 00:09:31,040 So we've heard it can check bank balances, track passport 272 00:09:31,040 --> 00:09:33,280 applications, monitor builds. 273 00:09:33,280 --> 00:09:35,640 Given how relatively easy it seems to get started 274 00:09:35,640 --> 00:09:38,140 and the power it offers with things like Selenium, 275 00:09:38,140 --> 00:09:39,960 here's something to think about. 276 00:09:39,960 --> 00:09:43,800 What repetitive, maybe slightly annoying, time-wasting task 277 00:09:43,800 --> 00:09:46,900 are you doing online every day or every week? 278 00:09:46,900 --> 00:09:49,600 Could that task be handed over securely and reliably 279 00:09:49,600 --> 00:09:51,440 to your own secret twin brother? 280 00:09:51,440 --> 00:09:53,480 Definitely something to consider. 281 00:09:53,480 --> 00:09:55,880 And with that thought, we want to give our sincere thanks 282 00:09:55,880 --> 00:09:59,440 once again to SafeServer for supporting this deep dive. 283 00:09:59,440 --> 00:10:01,200 Remember, for help with software hosting 284 00:10:01,200 --> 00:10:02,560 and digital transformation needs, 285 00:10:02,560 --> 00:10:06,640 you can check them out at www.safeserver.de. 286 00:10:06,640 --> 00:10:10,240 Thanks for tuning in, and we'll catch you on the next deep dive.