Transcription: OpenAgents Episode 107 - Codebase Indexing via Greptile
June 9, 2026 ยท View on GitHub
Source: https://x.com/OpenAgentsInc/status/1806002683649667592 Wiki source: https://raw.githubusercontent.com/wiki/OpenAgentsInc/openagents/Video-Series.md Media title: OpenAgents - Episode 107: Codebase Indexing via Greptile We write an @extism plug... Upload date: 20240626 Transcription model: mlx-whisper/mlx-community/whisper-tiny Generated at: 2026-06-01T18:01:49Z
Machine-generated transcript. Review speaker labels and wording before using this as quote-grade source material.
[00:00] Christopher David: Alright, we like this idea of auto-dev plus artifacts.
[00:05] Christopher David: And next we need to have good code base indexing.
[00:10] Christopher David: So our agents can do meaningful things with a code base.
[00:15] Christopher David: You know, it's nice that Claude's thing lets us maintain some files here,
[00:21] Christopher David: but it would be really nice to sync this all up with a GitHub repo.
[00:26] Christopher David: So we're going to do that in a couple of parts.
[00:29] Christopher David: One is we're going to implement integration with a reptile.
[00:36] Christopher David: There are startup specifically focusing on understanding code bases.
[00:42] Christopher David: And if use their APIs thus far and it works really well.
[00:46] Christopher David: And it'll save us time from implementing a basic bad version of that ourselves.
[00:52] Christopher David: Then we'll do that later for rag for PDFs and other things.
[00:58] Christopher David: So reptile went ahead yesterday and whipped up a quick ex-dism plugin for reptile.
[01:05] Christopher David: My thought was like let's see if we can integrate with this service,
[01:12] Christopher David: even though it's kind of foundational, like we need these code base indexing.
[01:16] Christopher David: So we're going to do that in a couple of parts.
[01:19] Christopher David: So we're going to do that in a couple of parts.
[01:22] Christopher David: So we're going to do that in a couple of parts.
[01:25] Christopher David: So we're going to do that in a couple of parts.
[01:28] Christopher David: So we're going to do that in a couple of parts.
[01:31] Christopher David: So we're going to do that in a couple of parts.
[01:34] Christopher David: So we're going to do that in a couple of parts.
[01:37] Christopher David: So we're going to do that in a couple of parts.
[01:39] Christopher David: So we're going to do that in a couple of parts.
[01:42] Christopher David: So we're going to do that in a couple of parts.
[01:45] Christopher David: So we're going to do that in a couple of parts.
[01:48] Christopher David: So we're going to do that in a couple of parts.
[01:51] Christopher David: So we're going to do that in a couple of parts.
[01:54] Christopher David: So we're going to do that in a couple of parts.
[01:57] Christopher David: So we're going to do that in a couple of parts.
[01:59] Christopher David: So we're going to do that in a couple of parts.
[02:01] Christopher David: So we're going to do that in a couple of parts.
[02:04] Christopher David: So we're going to do that in a couple of parts.
[02:07] Christopher David: So we're going to do that in a couple of parts.
[02:10] Christopher David: So we've worked well on repose that we've been wanting to index like this knowledge base.
[02:17] Christopher David: So for example, like we have this repo.
[02:24] Christopher David: Specifically intended to provide knowledge optimized for agents.
[02:28] Christopher David: So I've got a summary, for example, of the WANIX file systems in here.
[02:33] Christopher David: So instead of an agent needing to like read all of the relevant source files to figure out which one it should be using.
[02:38] Christopher David: It just has one marked down dock with like a bunch of information here.
[02:43] Christopher David: And so we'll generate more of these things.
[02:49] Christopher David: Letting an agent traverse these types of things is kind of the idea.
[02:55] Christopher David: And then I think the actual traversal of this is going to be done through a combination of grip tile for kind of making sense of a code base to see like what needs to be done.
[03:06] Christopher David: And then for the actual manipulation of files that will then sink to the GitHub repo because we want to do the full cycle of having the agent analyze and then make the change and then push it to get up once it's approved or something.
[03:19] Christopher David: We'll probably use the GitHub file system from WANIX.
[03:24] Christopher David: And I think in the next video we will pull that into.
[03:29] Christopher David: Maybe also a plug in or pull that into our new little go lane interface we just built.
[03:34] Christopher David: So GitHub as provides a read right file system interface for GitHub repository within WANIX.
[03:38] Christopher David: And it's just a single file we should probably be able to pull that into our new application.
[03:42] Christopher David: So in addition to.
[03:46] Christopher David: Creating this plugin which tests is tested and works.
[03:50] Christopher David: I made another artifact workspace for.
[03:56] Christopher David: Actually no I kept it in the same one.
[03:58] Christopher David: Did I building the actual front at interface that consumes the plugin.
[04:04] Christopher David: And so now we have kind of the thing we had earlier a short of in the last video right this like little workspace.
[04:11] Christopher David: With a little react inertia thing here I did this a new app.
[04:19] Christopher David: Call auto dev.
[04:21] Christopher David: This is a go temple HTML.
[04:27] Christopher David: So I wanted the back end to be a go just so we have more kind of reusability behind the WANIX things.
[04:32] Christopher David: We'll strategize later about how to connect this to like our core product.
[04:37] Christopher David: But I have so I wrote the plugin used the ex to some PDK the plugin development kit and then the ex to some SDK for consuming the plugin.
[04:47] Christopher David: That is integrated here so if you look at for example.
[04:52] Christopher David: Let me shrink this down.
[04:57] Christopher David: I've got this go application that cloud has.
[05:05] Christopher David: Workspace this has been able to.
[05:08] Christopher David: Okay so I mean go.
[05:13] Christopher David: This is just like a massive file but you can see at the beginning like.
[05:18] Christopher David: We're setting up the temple renderer.
[05:21] Christopher David: When we initialize the application we are loading the reptile.
[05:26] Christopher David: Wazom plugin that's just like the wasm version of the.
[05:31] Christopher David: Plug and I should off in a second ago.
[05:34] Christopher David: We're loading that in and then we're just throwing up a little temple template.
[05:42] Christopher David: At root and then a post request that we're calling VHMX.
[05:47] Christopher David: That runs the plugin with either index query or search.
[05:53] Christopher David: Right now we're we've got such that like the one single run function in the ex is in plugin handles all three things.
[06:01] Christopher David: Conceitably that should be split off into like three different functions but I have the kind of.
[06:08] Christopher David: Sintax just to keep things simple until we get plugins signature analysis working is to have all plugins have the same signature which is there's a.
[06:18] Christopher David: A run function that takes a string and return to string and then the parsing is all done by.
[06:23] Christopher David: The client so if you look at the plugin dash reptile here and main go with the core logic is.
[06:30] Christopher David: This export run this is the syntax that ex is an expects.
[06:37] Christopher David: So it just takes in index query and search along with the relevant API keys.
[06:43] Christopher David: Need to get it access token and the reptile token those are passed in.
[06:49] Christopher David: And then that gets compiled to wasm via this make file build that results in plugin dot wasm.
[06:56] Christopher David: I renamed it to grab tile dot wasm and paste it into the auto dev.
[07:05] Christopher David: Repo here this will be our auto dev interface.
[07:09] Christopher David: Paste that in plugin slash wasm put it in get into our.
[07:15] Christopher David: And then we've got our index dot temple which I've got the repos hard coded but this just sends the post request via htmax to.
[07:25] Christopher David: The go back and which has the plugin loaded and it called the plugin.
[07:32] Christopher David: And like why not just directly implemented with htp request is the idea that because there's 20 different plugins.
[07:40] Christopher David: If we specify the format in a registry then applications can just pull in whatever plugins they need on a flock and it can be like this self evolving system because one developer doesn't need to build it all.
[07:50] Christopher David: It allows for.
[07:52] Christopher David: And evolving system humans and agent so let's try it out I already indexed these three code bases.
[08:00] Christopher David: I can index a different one and yeah let's let's index a different one let's do the actual wanx code base so we grab the.
[08:10] Christopher David: Link there I think it just expects.
[08:20] Christopher David: Yeah my little job script for hiding this.
[08:24] Christopher David: Got bro come on guys tractor dev flash wanx so when you index a code base.
[08:32] Christopher David: It will just say.
[08:42] Christopher David: Oh.
[08:44] Christopher David: Did I break the indexing.
[08:50] Christopher David: Yeah maybe I break the indexing okay let's just make sure that this is working so for.
[09:00] Christopher David: Query let's ask a query of wanx let's ask a query of plugin.
[09:04] Christopher David: Gretile and ask it to you know summarized the.
[09:10] Christopher David: Make file and how it works.
[09:20] Christopher David: And then I'll show you how I debug that index thing.
[09:28] Christopher David: One thing that I've been doing with artifacts is just like copy pasting the entire file that it gives me back into.
[09:34] Christopher David: This so it's like this complete replacement each time and it's good I'll notice it when it like breaks something that I'm working on but.
[09:40] Christopher David: Like that indexing thing used to work but now it's not but I'll I'll go in and.
[09:45] Christopher David: I'll go in and change that in a second but that's a reason for well that's where we're going to want more of the surgical.
[09:53] Christopher David: Code updates from I mentioned the.
[09:59] Christopher David: All eighter project that's got great algorithms for surgical code updates.
[10:05] Christopher David: And so we've got to you know just mark down of the query I asked.
[10:13] Christopher David: What I say summarized the make file and how it works okay it's not as I do this is this is this is this is this.
[10:19] Christopher David: These repos are pretty small so there's not like that much compelling to do but if I ask the query of the open agents code base like.
[10:27] Christopher David: How does.
[10:29] Christopher David: This code base use grpc.
[10:33] Christopher David: That will probably require more.
[10:37] Christopher David: Suffisticated analysis across a number of different files and then if you query it then they'll run.
[10:47] Christopher David: The chat model on their end or if you just do search it'll give you a raw material and get a run through an LM of yours which is nice because we support so many models.
[10:55] Christopher David: And we can probably want to be able to run our own chat.
[10:59] Christopher David: Um, still pending.
[11:11] Christopher David: There we go.
[11:13] Christopher David: The code base uses grpc to handle various functionality such as job management discovery and event handling.
[11:17] Christopher David: Here are some key points on how grpc is utilized.
[11:19] Christopher David: Part of about messages service definitions generally APB to be classes grpc client specialization.
[11:25] Christopher David: Here's an example.
[11:27] Christopher David: In summary the code base is okay this is gold this is like a correct accurate answer.
[11:33] Christopher David: Amazing.
[11:35] Christopher David: What this enables is an LLM.
[11:39] Christopher David: In the process of an agentic loop to come up with a question that it wants.
[11:43] Christopher David: An answer to to be able to decide what to do next.
[11:47] Christopher David: Even if that requires human input like proposing a plan like get actionable information from a code base.
[11:57] Christopher David: Such that you can take meaningful action on tablet.
[12:01] Christopher David: So if it wants to like suck several of my dislike with what the file paths are relative to the route.
[12:07] Christopher David: We can then have the LLM know that it has a function call to be able to match the path with a way for them to edit it.
[12:15] Christopher David: And likely combined with some eight or style algorithms make a surgical code update.
[12:23] Christopher David: Do whatever to local testing is necessary.
[12:27] Christopher David: The fact that we have a built in go compiler in the landings environment which we're not currently using the landings environment just kind of shoved over here in the library.
[12:33] Christopher David: But whether we use the landings environment or whether we pull things over from the landings environment into our other go code base remains to be seen.
[12:41] Christopher David: But to be able to do whatever kind of like go compilation and testing or other languages or something.
[12:49] Christopher David: We're going to be starting with a go and updating the actual code base of what we're building here.
[12:55] Christopher David: Then we'll have a full loop or an agent could make meaningful changes to a code base.
[13:01] Christopher David: And then whenever the human is accessible with it or you can just I guess give the agent.
[13:05] Christopher David: And if it meets our criteria to push that back up to get up.
[13:11] Christopher David: So agents that can edit their own code.
[13:15] Christopher David: Woo, scary.
[13:17] Christopher David: Good thing we're doing all this open source inspectable so everyone can see what's going on and we can look at it and like add guard rails as necessary.
[13:27] Christopher David: But we're not building all this in secret and trying to hype it and scare regulators to getting regulation that biases with people.
[13:37] Christopher David: So open or die. Okay, open or die.
[13:41] Christopher David: So let's um, so in the next video we're going to.
[13:47] Christopher David: Um, start moving this into an agent loop or building the other pieces needed to put this into an agent loop.
[13:55] Christopher David: And that will probably be through manipulation of the GitHub file system.
[13:59] Christopher David: So we'll probably start with the GitHub file system.
[14:01] Christopher David: Then we will kind of make this querying.
[14:05] Christopher David: Make some LLM using this query data aware that it has access to.
[14:11] Christopher David: Um, be able to make changes to get and then ask it to make surgical code updates.
[14:19] Christopher David: So as you got to keep building up this this like full.
[14:23] Christopher David: Recursive self improvement.
[14:25] Christopher David: With human feedback using community contributed plugins which.
[14:35] Christopher David: Plugin offers are going to be receiving revenue sharing proportional to the.
[14:41] Christopher David: Use it here. Okay, um, so that's the end of the content of this video and then bonus content.
[14:47] Christopher David: You get to see me debug the indexing.
[14:51] Christopher David: So WTF. So the first thing I'm going to do is I'm just going to like describe the problem to.
[15:01] Christopher David: Claw and just like see if I can debug it. First let's just try one more time.
[15:05] Christopher David: When I do run.
[15:07] Christopher David: But quest does error for.
[15:09] Christopher David: Oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[15:39] Christopher David: oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[16:09] Christopher David: oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[16:39] Christopher David: oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[17:09] Christopher David: oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[17:39] Christopher David: oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[18:09] Christopher David: oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[18:39] Christopher David: oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[19:09] Christopher David: oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[19:39] Christopher David: oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh
[19:59] Christopher David: Cloud, can I pay you?
[20:09] Christopher David: Can I pay you?
[20:17] Christopher David: While using the Cloud AI free open beta, hey, I'm not using the free open beta.
[20:25] Christopher David: I'm a pro user.
[20:26] Christopher David: Why are you telling me about the free open beta?
[20:29] Christopher David: Cloud Pro usage.
[20:32] Christopher David: 5x the usage.
[20:42] Christopher David: So this reinforces for me that I want our pricing model to be usage based.
[20:51] Christopher David: This whole, I'm paying $20 a month and then they have to assume that the pricing
[20:56] Christopher David: probably works for them because most people probably don't use more than $20 of compute per
[21:02] Christopher David: month so that's generates money.
[21:03] Christopher David: I don't know.
[21:05] Christopher David: But if I want to go beyond that, I want to be a power user.
[21:07] Christopher David: Just let me freaking pay for it.
[21:09] Christopher David: Dang, I mean, you don't mean me debug as manually.
[21:14] Christopher David: All right, plug-in call error, must specify repository.
[21:17] Christopher David: You know what I could do?
[21:22] Christopher David: All right.
[21:26] Christopher David: Let's copy this entire thing.
[21:29] Christopher David: I'm just going to use Cloud Pro via open agents.
[21:33] Christopher David: The API.
[21:34] Christopher David: Okay, we have this giving this error.
[21:51] Christopher David: Try to fix it.
[22:12] Christopher David: I think the forum is probably messing up because repository is set to be one of those
[22:17] Christopher David: fields.
[22:19] Christopher David: A query or search term.
[22:21] Christopher David: I have no field for new repo.
[22:34] Christopher David: Copy paste, copy paste.
[22:44] Christopher David: I think it's because using my brain here.
[22:49] Christopher David: I think it's because our form has repose intended to be sent to search query, but not
[22:59] Christopher David: pass a new repo to be indexed.
[23:06] Christopher David: Please analyze our index.
[23:11] Christopher David: Simple file here and suggest changes so everything works.
[23:21] Christopher David: Oh, is it going to fix my broken JavaScript too?
[23:35] Christopher David: The forum is using a multi-select input for repositories, but the server is expecting
[23:39] Christopher David: a single repository value.
[23:40] Christopher David: That's a lot of other type of in the server code to handle this correctly.
[23:47] Christopher David: Oh, then it cuts off here.
[23:59] Christopher David: What the hell?
[24:08] Christopher David: I think it's time for my lunch break.
[24:18] Christopher David: Anyway, I'll leave it there.