@karrisaarinen@linear Love cmd+click for go to symbols, but it’s limited to navigating to symbols in the diff. Also, would love hover to see TypeScript info
Introducing e2e
The agentic testing framework for any app
~/ npx e2e init
→ Fully Open Source
→ Mix deterministic and agentic APIs
→ Supports web, mobile, and more
→ Bring your own agent and infrastructure
→ Run locally or in CI
https://t.co/G3XB2L8tiC
This is all I will say on the matter:
It’s alarming to see the constant effort to try to tell me how I should use AI, how I should build AI, and now how I should pace it.
Is it just me, or are all these proposals demanding way too much control?
It’s clear that open-source AI matters more than ever.
It’s how we free ourselves from suspicious views, constant desire for control, and hidden agendas.
There's still so much to solve.
Better evals, removing biases, novelty generation, reliability, creativity, code quality, OOD problems, automation capabilities like dynamically generating workflows/harnesses, automated prompt engineering, compaction, cost, multimodality, omni models, latency, throughput, long context understanding, retrieval, tool calling, agent coordination, and the list goes on and on.
We need more people working on these problems instead of constantly fear-mongering society about what the technology isn't.
As an independent researcher, I don't ignore the safety concerns around AI. Some are valid. And I work on these every day. But we all need to bring more scientific rigor back to this problem, less anthropomorphizing of frontier capabilities, and concerns more grounded in reality than in personal belief or feelings.
Lastly, I've never seen so much pessimism about human capabilities as what the topic of recursive self-improvement has brought. We need to be more optimistic about humanity's potential, and how we all play a role in this. To me, that's one of the real problems.
I remain optimistic about our field. Transparent dialogue is key to getting this right. But cleverly coordinated self-serving efforts are not welcome. We need to level the playing field. AI is too important to be controlled by only a few.
Now back to building.
Build and own your harness, folks.
Very few people understand the magic behind customizing and optimizing an agent harness for your work.
You can start seeing incredible results quickly, even with a minimal harness. Just better code, better outputs, better costs, better writing, and so on.
As an example, I see way too many people complain that they are tired of their out-of-the-box agent harness producing verbose outputs. If you built a harness, that's easier to fix with a system prompt optimized for you.
This is why Pi is getting insane adoption these days. You want to control your harness. I agree that it's hard to optimize where things stand, but self-improving algorithms will make it easier to learn from trajectories. And if you use local models, you can tune all of that end-to-end (through a co-evolution of the harness and the models) as you work with them.
Look into open-source projects like Eve, Exo, and Prime Agent, and you will see what I mean.
@linear@karrisaarinen Ah shucks Linear; thanks! We started with you June 12, 2020 - been amazing to watch you grow as our company, @KnapsackCloud, was growing — you’ve always launched new features right as we’ve needed them. Looking forward to the next 6 years as well!
TIL — when you're wrangling long shell commands, you can press `ctrl + x` followed by `ctrl + e`, and the command will be opened in your $EDITOR. 👏
(I tested it in iTerm, zsh, oh-my-zsh and opened vim.)
Let's talk about another crazy TypeScript trick: `T[number]`.
It looks like absolute insanity.
But I promise by the end of this thread, you'll know how it works.
Let's go 🧵
@mattpocockuk Hi! I’ve got a TS question for you. We like all functions to have 1 object param. Is there anyway to rewrite this to go from 2 params to 1?
function isObjKey<T extends Record<string, unknown>>(
key: string,
obj: T,
): key is keyof T {
return key in obj;
}
Massive TypeScript errors tend to get less common the more experienced you get.
An extra annotation in the right place can turn a massive error into a one-liner.