Sign in

brendan

@brendonovich.dev
309 followers 10 following 73 posts

building opencode.ai desktop at anoma.ly

PostsRepliesMedia
brendan @brendonovich.dev · 17/09/2026
welcome to the future old man
Image from X
1472
brendan @brendonovich.dev · 24/08/2026
i built a vite plugin that lets me prompt from in my app using opencode v2's server. each pane is a regular session that can be viewed in tui and desktop. no configuring providers, models, skills, or anything since it's just opencode under the hood.
Image from X
110
brendan @brendonovich.dev · 30/07/2026
close call
Image from X
010
brendan @brendonovich.dev · 30/07/2026
it must feel so good to be a codebase getting cleaned up
Image from X
010
brendan @brendonovich.dev · 12/06/2025
i updated the @cap.so docker image a few days ago on @github.com and... i think someone's been downloading it in a loop? the download count has been increasing by like 2/second for the past few days 😅
A screenshot of the cap-web docker image page on github. The latest version is shown to be published 3 days ago and has over 200,000 downloads - I swear they're not from us!
010
brendan @brendonovich.dev · 01/06/2025
multiplayer @macrograph.app was a mistake
A bunch of MacroGraph nodes without any IO arranged to spell out "SUS  CUM", "POOP", "NUT", and an Among Us character
073
brendan @brendonovich.dev · 01/05/2025
turns out you can just work from the New York library
Close up of my MacBook screen with Zed open working on De-vinxi-ing Solid Start, with the table and wall of one of the New York library’s rooms out of focus in the background
040
brendan @brendonovich.dev · 20/03/2025
@cap.so is getting a whole suite of improvements over the next few days - redesigned editor - new 'start recording' flow - system audio capture then focusing on bug fixes & ux improvements for the next couple of weeks to make the app super smooth
A screenshot of Cap's new editor
1113
brendan @brendonovich.dev · 22/02/2025
the manual zoom picker in @cap.so will now preview the zoom segment's first frame much better than a big blue rectangle 😄
000
brendan @brendonovich.dev · 21/02/2025
average conversation with @ryansolid.bsky.social
Screenshot of a message I sent in a conversation with Ryan Carniato, where he was explaining some of Solid 2.0's new APIs (latest and isPending). The message says 'this is next level neuron activity going on here'.
181
brendan @brendonovich.dev · 19/02/2025
if @ryansolid.bsky.social made music
A screenshot of ellis's 'signals' (2024) EP on Spotify
120
brendan @brendonovich.dev · 18/02/2025
hell yeah
Once the GitHub workflow has started and created a draft release, it updates the message from CapBot to say '{version} workflow running, go edit the release notes!', with a link to the draft release and to the specific workflow run.
000
brendan @brendonovich.dev · 18/02/2025
i got tired of clicking 'run workflow' on github
I've created a basic Discord bot that has a /release slash command, which presses 'Run Workflow' in GitHub for us. This screenshot shows CapBot responding to me invoking /release, saying 'Release workflow started' and with a button that links to the GitHub workflow runs page.
120
brendan @brendonovich.dev · 15/02/2025
been working on my own version of the 'fail' crate for @cap.so that allows fail points to be toggled in real-time. all declared 'fail' (panic) and 'fail_err' (Err return) points are collected by the 'inventory' crate, and a global map that our debug window can modify toggles them on and off.
A screenshot with some code on top, Cap's debug window with a list of fail points on the left, and the main window on the right.
The code demonstrates the 'fail' macro, for declaring fail points that should panic, and 'fail_err', which are points that should return an Err containing some value.
011
brendan @brendonovich.dev · 02/02/2025
also osu! lazer's ui is insanely clean and the animations are so smooth 😄
A screenshot of osu! lazer's song select UI
010
brendan @brendonovich.dev · 29/01/2025
I'm happy to announce I'm officially joining cap.so as Founding Engineer! After helping with the new recorder + editor for a while, I'm excited to be a part of building the open source screen recording suite our users have been asking for.
A screenshot of Cap's recorder and editor windows on a default macOS background
3162
brendan @brendonovich.dev · 26/01/2025
coming soon: cap.so for windows
Cap running on Windows. The recording, settings, and editor windows are all visible.
180
brendan @brendonovich.dev · 24/01/2025
i should check on @vercel.com more often
A screenshot of my vercel.com dashboard with numerous alerts saying 'macrograph.app is missing a payment source'.
I really ought to turn on email alerts 🤦
030
brendan @brendonovich.dev · 22/01/2025
built a new video decoder for cap.so that uses native macOS APIs and omg it's so much faster
181
brendan @brendonovich.dev · 14/01/2025
cap.so performs all video rendering in Rust, but uses a web frontend via @tauri.app. how does the frontend receive frames from the backend? WebSockets! we've found local WebSockets can handle >500mb/s of throughput, allowing us to display 1080p@60fps video on a <canvas>!
An Excalidraw diagram titled 'Sending frames from Rust to webviews.
There are two boxes, one on the left that says 'Rust Backend. Axum Server. Sends frame data + width/height', and one on the right that says 'Web Frontend. <canvas>. drawn with putImageData'. There is an arrow pointing from 'Axum Server' to '<canvas>' labelled 'RGBA frames via WebSocket.
1101
brendan @brendonovich.dev · 28/12/2024
sometimes you just gotta do it to em
GitHub PR line diff counter displaying +35,242 and -13
230
brendan @brendonovich.dev · 17/12/2024
super happy with this new stream layout! macos's portrait blur + studio lighting make my camera look way better than it is 😄 i'm gonna be streaming 2-3 times a week from now on, working on cap.so and macrograph.app over at twitch.tv/brendonovich, come say hi!
Screenshot of a moment of my Twitch stream. My display, with the cap.so editor open, takes up most of the screen, with chat to the right and my webcam in the bottom right, slightly overlapping with the display.
The gap underneath the display contains Discord StreamKit elements: A link to the Cap discord and the people in a voice chat with me - just me and Richie.
There's padding between most of the elements, and around the edges, where moving white dots with lines connecting them on a blue background can be seen.
150
brendan @brendonovich.dev · 25/11/2024
Infrastructure as Code but it's for OBS scenes/sources/filters built an initial version of this years ago but wanted to try a different approach today repo if you're curious: github.com/Brendonovich/sceneify
TypeScript code defining an OBS scene named Main with a camera item that uses the webcam input defined in the next image, and a main function that creates the scene and updates the transform of the camera item. The full code is the following:

export const mainScene = defineScene({
  name: "Main",
  items: {
    camera: {
      input: webcam,
      alignment: "bottom-right",
      positionX: 1920 - GAP,
      positionY: 1080 - GAP,
    },
  },
});

async function main() {
  const obs = new OBS();
  const scene = await createScene(obs, mainScene);

  await scene.item("camera").setTransform({
    positionX: 100,
    positionY: 1000,
  });
}TypeScript code defining a 'video capture source' input type, 'streamfx blur' filter type, and the webcam input mentioned in the previous image. The webcam input uses the 'video capture source' input, and contains a blur filter. The full code is the following:

export const videoCaptureSource = defineInputType(
  "av_capture_input_v2"
).settings<{ device: string; device_name: string }>();

export const streamfxBlurFilter = defineFilterType(
  "streamfx-filter-blur"
).settings<{
  "Filter.Blur.Type": string;
  "Filter.Blur.Size": number;
}>();

export const webcam = videoCaptureSource.defineInput({
  name: "Webcam",
  filters: {
    blur: streamfxBlurFilter.defineFilter({
      name: "Blur",
      settings: {
        "Filter.Blur.Type": "box",
        "Filter.Blur.Size": 30,
      },
    }),
  },
});
271
brendan @brendonovich.dev · 14/11/2024
next cap.so version's dmg will have a background, yay
A macOS dmg installer with the Cap app on the left and Applications text on the right, an arrow pointing from left to right, and text underneath that says 'Drag and Drop Cap to the Applications folder'.
050
brendan @brendonovich.dev · 14/11/2024
pretty happy with this mic level indication i've made for cap.so, should be super helpful for distinguishing microphone issues from recording/encoding issues
0104
brendan @brendonovich.dev · 11/11/2024
@syntax.fm woah, thankyou!
Screenshot of GitHub feed entry that reads:
'syntaxfm sponsored you - 2 hours ago'
160
brendan @brendonovich.dev · 01/11/2024
domain as handle is very cool, wow
050