Hacker Newsnew | past | comments | ask | show | jobs | submit | tosh's commentslogin

Kudos on the launch. Love the local-ai approach.

Regarding open models: what is the go-to way for me to make Surf run with qwen3-vl? Ollama?

As far as I understand any endpoint that supports the completions API will work?

https://github.com/deta/surf/blob/main/docs/AI_MODELS.md

If I attach image context will it be provided to qwen3-vl? Or does this only work with the "main" models like OpenAI, Anthropic, Gemini and so on?


Thank you.

Yes, we support any endpoint that supports the completions API. And yes, Ollama might be the easiest to setup. The images should also work with qwen3-vl.

But if you run into any issues, please feel free to submit a bug report https://github.com/deta/surf/issues

Edit: fixed github issues link


SES and signal seem to work again

seeing issues with SES in us-east-1 as well

One of the main issues I had with Claude Code (maybe it‘s the harness?) was that the agent tends to NOT read enough relevant code before it makes a change.

This leads to unnecessary helper functions instead of using existing helper functions and so on.

Not sure if it is an issue with the models or with the system prompts and so on or both.


This may have been fixed as of yesterday... Version 2.0.17 added a built in "Explore" sub-agent that it seems to call quite a lot.

Helps solve the inherent tradeoff between reading more files (and filling up context) and keeping the context nice and tight (but maybe missing relevant stuff.)


You might get better results with https://github.com/oraios/serena

I sometimes use it, but I've found just adding to my claude.md something like "if you ever refactor code, try search around the codebase to see if their is an existing function you can use or extend"


> I sometimes use it, but I've found just adding to my claude.md something like "if you ever refactor code, try search around the codebase to see if their is an existing function you can use or extend"

Wouldn't that consume a ton of tokens, though? After all, if you don't want it to recreate function `foo(int bar)`, it will need to find it, which means either running grep (takes time on large codebases) or actually loading all your code into context.

Maybe it would be better to create an index of your code and let it run some shell command that greps your ctags file, so it can quickly jump to the possible functions that it is considering recreating.


This and also give it a tool (script or a fd/rg snippet) it can use to find all functions and their documentation based on a criteria

Helpfer functions exploded over the last releases, id say? Very often I state: "combine this into one function"

another thing I saw in the last days starting: Claude now draws always an ASCII art instead of a graphical image, and the ASCII art is completely useless, when something is explained


you can put in your rules what type of output to do for diagrams. Personally I prefer mermaid -> it could be rendered into an image, read and modified by AI easily.

I agree, claude is an impressive agent but it seems like it's impatient and trying to make its own thing, tries to make its own tests when I already have them, etc. Maybe better for a new project.

GPT 5 (at least with cline) reads whatever you give it, then laser targets the required changes.

With High, as long as I actually provided enough relevant context it usually one shots the solution and sometimes even finds things I left out.

The only downside for me is it's extremely slow, but I still use it on anything nuanced.


> agree, claude is an impressive agent but it seems like it's impatient and trying to make its own thing, tries to make its own tests when I already have them, etc. Maybe better for a new project.

Nope, Claude will deviate from it's own project as well.

Claude is brilliant but needs hard rules. You have to treat it and make it feel like the robot it really. Feed it a bit too much human prose in your instructions and it will start to behave like a teen.


I regularly use @ key to add files to context for tasks I know require edits or patterns I want claude to follow, adds a few extra key strokes but in most cases the quality improvement is worth it

You need to plan down tasks really to the function level, and review things.

Just writing code is often faster.

Not when you stink at writing code but you’re really good at writing specs

In that case you would be much more valued as a business analyst than as a developer.

People that can and want to write specs are very rare.


Interestingly Bootstrap has removed "system-ui" in 2017

https://github.com/twbs/bootstrap/pull/22377/files

but it's back in the current one:

https://github.com/twbs/bootstrap/blob/main/scss/_variables....



I wonder how well this will play out when we look back in 10 years.


AI drives search, search leads to vapid content, vapid content has ads, big incumbents get lots of money for serving ads. Only difference is Google is now an AI engine rather than a search engine. There will be a few more large rent-seeking "platforms" that will make billions to prop it all up. The internet will be filled with complete crap that is inescapable.

So, same as it is today.


How are you generating the apps? Do you use an agent SDK or is it home grown?

The everything in one EAV table concept sounds very interesting as well. Can you say more about that? What kind of queries does it support? Sounds a bit like datomic or datascript. How do you tell the agent to use it?


> Can you say more about that? What kind of queries does it support? Sounds a bit like datomic or datascript. How do you tell the agent to use it?

Yes, we definitely take inspiration from datomic and datascript, as well as Tao (Facebook's DB). EAVs have a few good properties. First, it's more natural to do last-write-wins at the column level this way. Second, we get a real shot at creating a multi-tenant database.

With EAVs you can either query them with datalog, or use SQL CTEs. Fun fact, on Instant's backend, we use a datalog-like langauge as intermediary representation, which ends up converting to a SQL CTE.

Technically, you can make query on these as you can on a traditional SQL DB.

To interact with all this, users (and in proxy agents) use a graphql-like language, called InstaQL. It's like if GraphQL was represented as plain javascript objects.

Here's the system prompt, which shows these off:

https://gist.github.com/stopachka/a6b07e1e6daeb85fa7c9555d8f...


> Do you use an agent SDK or is it home grown?

It's about 260 lines of home-grown code. Here's a snippet of how it looks:

https://gist.github.com/stopachka/a38f00545d048661cf15a3cf4d...

Two interesting things there:

1. Since Instant is reactive, we use it to convey the stream to the client. This way all chats are "resumable" by default, even if the user refreshes the page.

2. To make sure Instant writes don't block the stream, we use a "natural" buffer approach. Basically tokens from the LLM buffer up during every save.


did not know (or forgot) that they were using Perl

Geizhals is a huge price comparison app in the german speaking market.


And according to "DuckDuckGo Hiring" page, the DuckDuckGo search engine still uses Perl 5 in their backend.


See also the little-known website Booking.com


booking uses Perl? that's one of the web sites that gives me the irrational "the backend must be Java" feeling. can't explain why though.


Got curious. Seems like they have been a heavy Perl shop from the beginning.

Their backend developer job ads appear to be oddly programming language neutral which I assume means they're still using Perl a lot. (Been there, done that, when recruiting for work in an unusual programming language.)


I don't think they're comparable... I read stories on how a paid reservation at Booking.com isn't a guaranteed stay at a hotel. Geizhals gives you the stock and availability infos right on the results page. Seems like one is making better use of Perl that the other.


Can you elaborate?


Xe is the name for Intel's GPU ISA . Which is used for both integrated graphics and their discreet GPUs.

Ryzen is AMD's line of processors. Of which they've carved out a piece of the low-end with their integrated graphics that are very price/performance competitive with Intels.

With this deal Intel will make at least some of their processors with Nvidia graphics in place of their own. Making Ryzen way less competitive to Intel/Nvidia processors. Also puts into question the future for Intel's Xe products. Intel likely already given up on their own discreet GPUs. For integrated graphics Xe might also be at stake as they'd compete with their products that use Nvidias tech. It might make more sense to only focus on their Nvidia based products.


I tried to connect our MCP (https://technicalseomcp.com) but got an error.

I don't see any debugging features yet

but I found an example implementation in the docs:

https://platform.openai.com/docs/mcp


Lots of people reported issues in the forums weeks ago, seems like they haven't improved it much (what's the point of doing a beta if you ignore everyone reporting bugs?)

https://community.openai.com/t/error-oauth-step-when-connect...


OpenAI is the biggest proof AI won't replace software engineers. They absolutely suck at shipping code


What is the error you are getting? I get "Error fetching OAuth configuration" with an MCP server that I can connect to via Claude.


I get this error trying to connect the Mapbox hosted MCP server:

    Something went wrong with setting up the connection
In the devtools, the request that failed was to `https://chatgpt.com/backend-api/aip/connectors/links/oauth/c...` which send this reply:

    Token exchange failed: 401, message='Unauthorized', url=URL('https://api.mapbox.com/oauth/access_token')


"error creating connector"

our MCP also works fine with Claude, Claude Code, Amp, lm studio and other but not all MCP clients

MCP spec and client implementations are a bit tricky when you're not using FastMCP (which we are not).


I wonder if it's a difference between SSE and HTTP streaming support? I've been working on a tool for devs to create their own MCP tools and built out support for both protocols because it was easier for me to support both protocols vs explaining why it's not working for one LLM client or another.


Oh, that might be it!

Ours doesn’t support SSE.


mine does support SSE (https://github.com/mickael-kerjean/filestash) but it fails before getting there, with the log looking like this:

    2025/09/11 01:16:13 HTTP 200 GET    0.1ms /.well-known/oauth-authorization-server
    2025/09/11 01:16:13 HTTP 200 GET    2.5ms /
    2025/09/11 01:16:14 HTTP 404 GET    0.2ms /favicon.svg
    2025/09/11 01:16:14 HTTP 404 GET    0.2ms /favicon.png
    2025/09/11 01:16:14 HTTP 200 GET    0.2ms /favicon.ico
    2025/09/11 01:16:14 HTTP 200 GET    0.1ms /.well-known/oauth-authorization-server
    2025/09/11 01:16:15 HTTP 201 POST    0.3ms /mcp/register
    2025/09/11 01:16:27 HTTP 200 GET    1.4ms /
with the frontend showing: "Error creating connector" and the network call showing: { "detail": "1 validation error for RegisterOAuthClientResponse\n Input should be a valid dictionary or instance of RegisterOAuthClientResponse [type=model_type, input_value='{\"client_id\":\"ChatGPT.Dd...client_secret_basic\"}\\n', input_type=str]\n For further information visit https://errors.pydantic.dev/2.11/v/model_type" }


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: