40 pointsby clevengermatt6 hours ago3 comments
  • clevengermatt6 hours ago
    Hi HN. OpenBindings is an open spec for describing what a service does once and binding it to any protocol. You define operations with input/output schemas, then point at your existing OpenAPI doc, proto file, MCP server, or whatever else. The spec doesn't replace any of them. They're inputs.

    The short version of why: programming languages have had interfaces and duck typing forever. You code to a shape, not an implementation. The web never got a successful equivalent at the network boundary. OpenBindings is an attempt at that.

    What's here today: - The spec (v0.1.0): https://openbindings.com/spec - ob CLI: https://github.com/openbindings/ob - Go SDK: https://github.com/openbindings/openbindings-go - TypeScript SDK: https://github.com/openbindings/openbindings-ts - Binding executors for different protocols

    Fastest way to try it: brew install openbindings/tap/ob ob demo

    That starts a coffee shop service on six protocols. `ob op exec localhost:8080 getMenu` calls it. The CLI discovers the OBI (OpenBindings Interface) at /.well-known/openbindings and handles the rest.

    Would love feedback on the spec design.

    • mindcrime6 hours ago
      Huh. This sounds really interesting. Will definitely give it a look later this evening. At first blush, this sounds like something I could use.
      • clevengermatt6 hours ago
        Thanks! Happy to answer any questions if you're interested. The ob demo is the fastest way to see it end to end. Starts a service on six protocols and lets you call it from the CLI.
  • 6 hours ago
    undefined
  • quellhorstan hour ago
    Shouldn't AI have made this less of a problem by now?
    • clevengermatt26 minutes ago
      It's made it more tolerable and less visible, but not less real. An LLM can read docs and generate API calls, but it's guessing at structure that could be declared, parsing docs that could be machine-readable, and inferring equivalence that could be verified.

      An OBI gives an AI agent typed operations and bindings it can use on the first try. No doc parsing, no guessing at endpoints. And AI can generate OBIs from existing specs or use the ob cli to do it for them.

      AI and structured contracts aren't competing concepts. Good interface design matters as much for AI as it does for us. Maybe more.