04-17 00:02 · 复古计算,技术演示,开源,社区分享,AI历史
Show HN: MacMind – A transformer neural network in HyperCard on a 1989 Macintosh
A complete transformer neural network implemented entirely in HyperTalk, trained on a Macintosh SE/30.
MacMind is a 1,216-parameter single-layer single-head transformer that learns the bit-reversal permutation -- the opening step of the Fast Fourier Transform -- from random examples. Every line of the neural network is written in HyperTalk, a scripting language from 1987 designed for making interactive card stacks, not matrix math. It has token embeddings, positional encoding, self-attention with scaled dot-product scores, cross-entropy loss, full backpropagation, and stochastic gradient descent. No compiled code. No external libraries. No black boxes.
Option-click any button and read the actual math.
The same fundamental process that trained MacMind -- forward pass, loss computation, backward pass, weight update, repeat -- is what trained every large language model that exists today. The difference is scale, not kind. MacMind has 1,216 parameters. GPT-4 has roughly a trillion. The math is identical.
We are at a moment where AI affects nearly everyone but almost nobody understands what it actually does. MacMind is a demonstration that the process is knowable -- that backpropagation and attention are not magic, they are math, and that math does not care whether it is running on a TPU cluster or a 68000 processor from 1987.
Everything is inspectable. Everything is modifiable. Change the learning rate, swap the training task, resize the model -- all from within HyperCard's script editor. This is the engine with the hood up.
The bit-reversal permutation reorders a sequence by reversing the binary representation of each position index. For an 8-element sequence:
Position: 0 1 2 3 4 5 6 7
Binary: 000 001 010 011 100 101 110 111
Reversed: 000 100 010 110 001 101 011 111
Maps to: 0 4 2 6 1 5 3 7
So input [3, 7, 1, 9, 5, 2, 8, 4]
becomes [3, 5, 1, 8, 7, 2, 9, 4]
.
This permutation is the first step of the Fast Fourier Transform, one of the most important algorithms in computing. The model is never told the rule. It discovers the positional pattern purely through self-attention and gradient descent -- the same process, scaled up enormously, that taught larger models to understand language.
After training, the attention map on Card 4 reveals the butterfly routing pattern of the FFT. The model independently discovered the same mathematical structure that Cooley and Tukey published in 1965.
MacMind is a 5-card HyperCard stack:
Click Train 10 for 10 training steps, or Train to 100% to train until the model gets a perfect score on a sample. For deeper training, run Train 10 repeatedly or click Train to 100% again -- the model picks up where it left off. For a longer run, open the Message Box (Cmd-M) and type trainN 1000
to train for 1,000 steps straight.
Each step generates a random 8-digit sequence, runs the full forward pass, computes cross-entropy loss, backpropagates gradients through every layer, and updates all 1,216 weights. Progress bars, per-position accuracy, and a training log update in real time.
Note: The training log field has a 30,000 character limit (a HyperCard constraint). After roughly 900 steps the log will fill up and HyperCard will display an error. To clear it and continue, open the Message Box (Cmd-M) and type:
put "" into card field "trainingLog"
Then resume training with trainN 500
(or whatever number of steps you want).
After training, click New Random to generate a test input, then Permute to run the trained model. The output row shows the model's predictions and the confidence row shows how sure it is about each position.
To verify the result, apply the bit-reversal permutation by hand. The output should rearrange the input positions in this order:
Output[0] = Input[0] Output[4] = Input[1]
Output[1] = Input[4] Output[5] = Input[5]
Output[2] = Input[2] Output[6] = Input[3]
Output[3] = Input[6] Output[7] = Input[7]
For example, input [3, 7, 1, 9, 5, 2, 8, 4]
should produce [3, 5, 1, 8, 7, 2, 9, 4]
. If the model is well-trained, every position will be correct with confidence above 90%.
The 8x8 grid visualizes which input positions the model attends to when producing each output position. After training, you should see the butterfly pattern: positions 0, 2, 5, 7 attend to themselves (fixed points of the permutation), while positions 1 and 4 attend to each other, and positions 3 and 6 attend to each other (swap pairs).
This is the same routing structure discovered by Cooley and Tukey in 1965 for the Fast Fourier Transform:
The classic FFT butterfly diagram (public domain). The model discovers this structure independently through attention.
Data flow:
Input digits [8]
|
Token embedding lookup + position embedding --> [8 x 16]
|
Q, K, V projections --> [8 x 16] each
|
Attention scores = Q x K^T, scaled by 1/sqrt(16) --> [8 x 8]
| softmax per row
Attention weights --> [8 x 8]
|
Context = weights x V --> [8 x 16]
|
Residual connection: context + embedded input --> [8 x 16]
|
Output logits = residual x
▸ 展开全文
04-17 00:02 · AI伦理,内容质量,用户信任,媒体评论,技术文化
George Orwell Predicted the Rise of "AI Slop" in Nineteen Eighty-Four (1949)
We’ve lived but a few years so far into the age when artificial intelligence can produce convincing stories, songs, essays, poems, novels, and even films. For many of us, these recently implemented functions have already come to feel necessary in our daily life, but it may surprise us to consider how many people had long assumed that computers could already perform them. That belief surely owes in part to the roles played by effectively sentient machines in popular fictions since at least the early decades of the twentieth century. Revisiting George Orwell’s Nineteen Eighty-Four, we even find a device very much like today’s large language models in use at the Ministry of Truth, the employer of protagonist Winston Smith.
Within the Ministry is “a whole chain of separate departments dealing with proletarian literature, music, drama, and entertainment generally. Here were produced rubbishy newspapers containing almost nothing except sport, crime and astrology, sensational five-cent novelettes, films oozing with sex, and sentimental songs which were composed entirely by mechanical means on a special kind of kaleidoscope known as a versificator.” Much later in the novel, Smith overhears a hit song composed on that very kaleidoscope, “without any human intervention whatever,” sung by a woman of this dystopian England’s lowest class, whose very baseness liberates it from the watchful eye that Big Brother’s vast surveillance system keeps on his ostensibly privileged Party members.
All the “proles” really require, in the view of the state, is the freedom to satisfy their vices and a steady stream of pacifying media. The extrusions of the versificator may now bring to mind the ever-increasing quantities of “AI slop,” often created with vanishingly small amounts of human intervention, whose potential to flood the internet has lately become a matter of public concern. What’s more chilling to consider is that such low-effort, high-volume content wouldn’t have attained such a presence if it weren’t genuinely popular. Much like the junk culture pumped out by the Ministry of Truth, AI slop reflects less the ill intent of (or at least neglect by) the powers that be than the undemanding nature of the public.
Perhaps we can provisionally chalk this one up in the “Orwell was right” column. It’s possible that, in light of real technological developments, even Isaac Asimov could be convinced to give it to him. Here on Open Culture, we recently featured Asimov’s critique of Nineteen Eighty-Four as a poor prophecy of the future, not least from a technological standpoint. That piece was written in 1980 at the very end of an “AI winter,” one of the fallow periods in artificial intelligence research. A boom was soon to come, but the truly astonishing developments wouldn’t happen until the twenty-twenties, about thirty years after Asimov’s death. When describing the versificator, Orwell was presumably extrapolating from the distracting, disposable entertainments of nineteen-forties England. Even if his readers couldn’t believe the idea of that sort of thing being created automatically, more than a few probably agreed with his diagnosis of its quality. Now, collective human intelligence may face its most formidable challenger, but individual human discernment has never been more valuable.
via Boing Boing
Related content:
Based in Seoul, Colin Marshall writes and broadcasts on cities, language, and culture. He’s the author of the newsletter Books on Cities as well as the books 한국 요약 금지 (No Summarizing Korea) and Korean Newtro. Follow him on the social network formerly known as Twitter at @colinmarshall.
▸ 展开全文
04-17 00:02 · AI基础设施,推理优化,边缘计算,平台服务,代理智能
Cloudflare's AI Platform: an inference layer designed for agents
AI models are changing quickly: the best model to use for agentic coding today might in three months be a completely different model from a different provider. On top of this, real-world use cases often require calling more than one model. Your customer support agent might use a fast, cheap model to classify a user's message; a large, reasoning model to plan its actions; and a lightweight model to execute individual tasks.
This means you need access to all the models, without tying yourself financially and operationally to a single provider. You also need the right systems in place to monitor costs across providers, ensure reliability when one of them has an outage, and manage latency no matter where your users are.
These challenges are present whenever you’re building with AI, but they get even more pressing when you’re building agents. A simple chatbot might make one inference call per user prompt. An agent might chain ten calls together to complete a single task and suddenly, a single slow provider doesn't add 50ms, it adds 500ms. One failed request isn't a retry, but suddenly a cascade of downstream failures.
Since launching AI Gateway and Workers AI, we’ve seen incredible adoption from developers building AI-powered applications on Cloudflare and we’ve been shipping fast to keep up! In just the past few months, we've refreshed the dashboard, added zero-setup default gateways, automatic retries on upstream failures, and more granular logging controls. Today, we’re making Cloudflare into a unified inference layer: one API to access any AI model from any provider, built to be fast and reliable.
One catalog, one unified endpoint
Starting today, you can call third-party models using the same AI.run() binding you already use for Workers AI. If you’re using Workers, switching from a Cloudflare-hosted model to one from OpenAI, Anthropic, or any other provider is a one-line change.
const response = await env.AI.run('anthropic/claude-opus-4-6',{
input: 'What is Cloudflare?',
}, {
gateway: { id: "default" },
});
For those who don’t use Workers, we’ll be releasing REST API support in the coming weeks, so you can access the full model catalog from any environment.
We’re also excited to share that you'll now have access to 70+ models across 12+ providers — all through one API, one line of code to switch between them, and one set of credits to pay for them. And we’re quickly expanding this as we go.
You can browse through our model catalog to find the best model for your use case, from open-source models hosted on Cloudflare Workers AI to proprietary models from the major model providers. We’re excited to be expanding access to models from Alibaba Cloud, AssemblyAI, Bytedance, Google, InWorld, MiniMax, OpenAI, Pixverse, Recraft, Runway, and Vidu — who will provide their models through AI Gateway. Notably, we’re expanding our model offerings to include image, video, and speech models so that you can build multimodal applications
Accessing all your models through one API also means you can manage all your AI spend in one place. Most companies today are calling an average of 3.5 models across multiple providers, which means no one provider is able to give you a holistic view of your AI usage. With AI Gateway, you’ll get one centralized place to monitor and manage AI spend.
By including custom metadata with your requests, you can get a breakdown of your costs on the attributes that you care about most, like spend by free vs. paid users, by individual customers, or by specific workflows in your app.
const response = await env.AI.run('@cf/moonshotai/kimi-k2.5',
{
prompt: 'What is AI Gateway?'
},
{
metadata: { "teamId": "AI", "userId": 12345 }
}
);
Bring your own model
AI Gateway gives you access to models from all the providers through one API. But sometimes you need to run a model you've fine-tuned on your own data or one optimized for your specific use case. For that, we are working on letting users bring their own model to Workers AI.
The overwhelming majority of our traffic comes from dedicated instances for Enterprise customers who are running custom models on our platform, and we want to bring this to more customers. To do this, we leverage Replicate’s Cog technology to help you containerize machine learning models.
Cog is designed to be quite simple: all you need to do is write down dependencies in a cog.yaml file, and your inference code in a Python file. Cog abstracts away all the hard things about packaging ML models, such as CUDA dependencies, Python versions, weight loading, etc.
Example of a cog.yaml
file:
build:
python_version: "3.13"
python_requirements: requirements.txt
predict: "predict.py:Predictor"
Example of a predict.py
file, which has a function to set up the model and a function that runs when you receive an inference request (a prediction):
from cog import BasePredictor, Path, Input
import torch
class Predictor(BasePredictor):
def setup(self):
"""Load the model into memory to make running multiple p
▸ 展开全文
04-17 00:02 · 平台监管,反垄断,法律风险,市场合规,电商生态
New unsealed records reveal Amazon's price-fixing tactics, California AG claims
Hundreds of previously redacted records reveal how Amazon has put pressure on independent sellers using its platform into raising their prices on the sites of competitors such as Walmart and Target, so that Amazon can appear to have lower prices, California authorities allege.
The global conglomerate became concerned even if a competitor was selling an item for as little as a penny less, according to one segment of the newly unredacted evidence.
The documents – which have never previously been reported on – include internal emails, deposition testimony and confidential corporate presentations that the California attorney general, Rob Bonta, obtained as part of a civil case his office launched in 2022 accusing Amazon of large-scale price-fixing.
The Guardian obtained and reviewed the cache of evidence, which has been filed in San Francisco county superior court but has not yet become publicly available. Within the documents, lawyers for the state of California have unmasked key details, paragraphs and sometimes whole pages that had previously been blacked out. A judge permitted some redactions to remain at Amazon’s request.
In a statement, Bonta said the newly unveiled evidence reinforced his office’s claims that Amazon’s actions “unlawfully punishes sellers whose products are sold at lower prices by other online retailers”.
“Especially while consumers face an affordability crisis, there is no room for illegal practices that impede competition and raise prices,” Bonta said. “California looks forward to our trial in January 2027.”
Amazon has called the claims in the lawsuit “entirely false and misguided”.
“Amazon is consistently identified as America’s lowest-priced online retailer, and it is ironic that the attorney general seeks to have us feature higher prices in ways that would harm consumers and competition,” the company said in a statement.
For years, the state alleges, Amazon has used automated tools to track how independent vendors on its platform price their goods on competitor sites, then leveraged its dominant position in e-commerce to ensure that those prices do not fall below those on Amazon, even though Amazon often charges vendors far more in fees.
The state’s lawsuit claims that Amazon punishes vendors that dare to offer discounts on their own sites or competitor sites like Walmart, suppressing their sales on Amazon by taking away the vendors’ access to critical features, such as its site’s “Buy Box” – the panel on the right side of the site where customers see buttons like “Add to cart” and “Buy Now”.
In one previously redacted deposition, marked “highly confidential”, Mayer Handler, owner of a clothing company called Leveret, testified that he received an email in October 2022 from Amazon notifying him that one of his products was “no longer eligible to be a featured offer” through Amazon’s Buy Box.
The tech giant, he testified, had suppressed the item, a tiger-themed, toddler’s pajama set, because his company was selling it for $19.99 on Amazon, a single cent higher than what his company was offering it for on Walmart.
A. That Amazon -- the price on Amazon was higher than the price was on Walmart.
Q. And how much higher?
A. One penny.
Afterwards, Handler testified, his company “changed pricing on Walmart to match or exceed Amazon’s price” or changed the item’s product code to try to throw off Amazon’s price tracking system.
We changed pricing on Walmart to match or exceed Amazon’s price. Or we changed the code.
In response to a question from the Guardian, Handler criticized Amazon for tracking prices across the internet and “shadow” blocking his company’s products – tactics which he said were depriving consumers of “lower prices”.
“Maybe that’s capitalism,” he wrote. “Or that’s a monopoly causing price hikes on the consumer.”
In another unsealed deposition, Terry Esbenshade, a Pennsylvania garden store supplier, testified in October 2024 that whenever his products lost Amazon’s Buy Box because of lower prices elsewhere on the internet, his sales on Amazon would plummet by about 80%. This financial reality forced him to try to raise his products’ prices with other retailers elsewhere, he said.
In one instance, Esbenshade testified, he discovered that one of his company’s better-selling patio tables had “become suppressed” on Amazon.
Esbenshade wasn’t sure why, he recalled, until someone at Amazon suggested he look at Wayfair, another online retailer that happened to be selling his patio table below Amazon’s price.
The businessman went online and set up a new minimum advertised price for the table on Wayfair to ensure it was higher than Amazon’s.
“So that raised the price up, and, voila, my product came back” on Amazon, he said, thanks to the reinstatement of the Buy Box.
Amazon has argued that its practices actually promote, incentivize and reward competition. The company said it works “to ensure its customers see offers with low, competitive prices” and provide “the best possible” customer
▸ 展开全文
04-17 00:02 · 开源,硬件原型,AI集成,自动化,低成本创新
Guy builds AI driven hardware hacker arm from duct tape, old cam and CNC machine
AutoProber is the hardware hacker's flying probe automation stack for giving your agent everything it needs to go from "there's a new target on the plate" to probing individual pins in a safe way.
Demo video: https://gainsec.com/autoprober-demo-mp4/
- Tell the agent to ingest the project.
- Connect all the hardware.
- Tell the agent to confirm that all parts are functioning.
- Have it run homing and then calibration.
- Attach the custom probe and microscope header.
- Tell the agent that there is a new target on the plate.
- It will find where the target is on the plate, then take individual frames, keeping a record of the XYZ while noting pads, pins, chips, and other interesting features.
- It will stitch the frames together and annotate the map, including pins and interesting components it identified.
- It will add probe targets to the web dashboard for you to approve or deny.
- It will probe the approved targets and report back.
All hardware can be controlled through the web dashboard, Python scripts, or by the agent itself.
This repo is a self-contained source-available release candidate. It contains the Python control code, dashboard, CAD files, and documentation needed to create your own AutoProber.
This project can move physical hardware. Treat it as a machine-control system, not a normal web app.
The required safety design is:
- GRBL
Pn:P
is ignored. The CNC probe pin is not a trusted endstop. - The independent safety endstop is read from oscilloscope Channel 4.
- Channel 4 must be continuously monitored during any motion.
- Any Channel 4 trigger, ambiguous voltage, CNC alarm, or real X/Y/Z limit pin is a stop condition.
- The agent/operator must stop and report. Recovery motion is not automatic.
Read docs/safety.md and docs/operations.md before running hardware.
apps/ Operator-facing scripts and Flask dashboard entrypoint
autoprober/ Reusable Python package for CNC, scope, microscope, logging, safety
dashboard/ Single-page web dashboard
docs/ Architecture, device references, operations, and safety guidance
cad/ Printable STL files for the current custom toolhead
config/ Example environment/configuration files
AGENTS.md Agent/operator safety rules
LICENSE PolyForm Noncommercial 1.0.0 license and commercial contact
pyproject.toml Python project metadata
uv.lock Locked Python dependency resolution
The tested project architecture uses:
- GRBL-compatible 3018-style CNC controller over USB serial
- USB microscope served by
mjpg_streamer
- Siglent oscilloscope over LAN/SCPI for Channel 4 safety monitoring and Channel 1 measurement
- Optical endstop wired to an external 5V supply and oscilloscope Channel 4
- Optional network-controlled outlet for lab power control
- Current printable custom toolhead parts in
cad/
Default runtime assumptions are documented in the device docs. Replace them with your own lab settings before use.
For a shopping-oriented hardware list, see docs/BOM.md.
These are the specific parts or part classes used for the prototype release. Verify current listings, dimensions, voltage, and connector compatibility before buying.
My build:
- Optical End Stop
- USB Microscope
- SainSmart Genmitsu 3018-PROVer V2
- Matter Smart Power Strip, individually controlled AC outlets with 2 USB-A and 2 USB-C ports
- Siglent SDS1104X-E Oscilloscope
- Dupont wires
- Pen spring or similar light compression spring
- 3D printer for the printable toolhead parts in
cad/
Optional / interchangeable:
- Universal Oscilloscope Probes
- USB power brick, 5V
- USB 2.0 pigtail cable
flowchart LR
Operator[Operator] --> Dashboard[Web Dashboard]
Dashboard --> Apps[Python Apps]
Apps --> CNC[GRBL CNC over USB serial]
Apps --> Microscope[USB Microscope via mjpg-streamer]
Apps --> Scope[Oscilloscope over LAN / SCPI]
Apps --> Outlet[Optional LAN Power Outlet]
Endstop[Optical Endstop] --> ScopeC4[Scope C4 Safety Voltage]
Pogo[Pogo Measurement] --> ScopeC1[Scope C1 Measurement]
ScopeC4 --> Apps
ScopeC1 --> Apps
flowchart TD
Preflight[Preflight] --> SafetyCheck{Channel 4 clear?}
SafetyCheck -- no --> Stop[STOP State]
SafetyCheck -- yes --> Motion[Monitored Motion]
Motion --> Monitor[EndstopMonitor thread >= 10 Hz]
Monitor --> C4{C4 clear?}
C4 -- yes --> Capture[Microscope Capture]
C4 -- no --> FeedHold[Immediate feed hold]
FeedHold --> Stop
Capture --> Stitch[Stitch / Map]
Stitch --> Review[Manual Probe Review]
Review --> Approved{Approved target and measured probe offset?}
Approved -- no --> Stop
Approved -- yes --> Probe[Bounded probe motion]
stateDiagram-v2
[*] --> Running
Running --> STOP: C4 triggered / C4 fault / CNC alarm / real limit pin
STOP --> Report: log voltage, status, action
Report --> WaitForOperator: no automatic recovery motion
WaitForOperator --> Running: operator explicitly clears condition
Install dependencies:
uv sync
Start the dashboard on a configured hardware host:
PYTHONPATH=. python3 apps/dashboard.py
The dashboard defaults to port 5000
.
Start from config/autoprober.example.env. Do not publish lab-specif
▸ 展开全文
04-16 00:00 · AI自动化,开源工具,技术迭代,流程优化,浏览器技术
Show HN: Libretto – Making AI browser automations deterministic
Libretto is a toolkit for building robust web integrations. It gives your coding agent a live browser and a token-efficient CLI to:
- Inspect live pages with minimal context overhead
- Capture network traffic to reverse-engineer site APIs
- Record user actions and replay them as automation scripts
- Debug broken workflows interactively against the real site
We at Saffron Health built Libretto to help us maintain our browser integrations to common healthcare software. We're open-sourcing it so other teams have an easier time doing the same thing.
libretto-demo.mov
- Website: libretto.sh
- Docs: libretto.sh/docs
- Repository: github.com/saffron-health/libretto
- Discord: discord.gg/NYrG56hVDt
npm install libretto
# First-time onboarding: install skill, download Chromium, and pin the default snapshot model
npx libretto setup
# Check workspace readiness at any time
npx libretto status
# Manually change the snapshot analysis model (advanced override)
npx libretto ai configure <openai | anthropic | gemini | vertex>
setup
detects available provider credentials (e.g. OPENAI_API_KEY
) and automatically pins the default model to .libretto/config.json
. Re-running setup
on a healthy workspace shows the current configuration instead of re-prompting. If credentials are missing for a previously configured provider, setup
offers an interactive repair flow.
Use ai configure
when you want to explicitly switch providers or set a custom model string.
Libretto is designed to be used as a skill through your coding agent. Here are some example prompts:
Use the Libretto skill. Go on LinkedIn and scrape the first 10 posts for content, who posted it, the number of reactions, the first 25 comments, and the first 25 reposts.
Your coding agent will open a window for you to log into LinkedIn, and then automatically start exploring.
I'm gonna show you a workflow in the eclinicalworks EHR to get a patient's primary insurance ID. Use libretto skill to turn it into a playwright script that takes patient name and dob as input to get back the insurance ID. URL is ...
Libretto can read your actions you perform in the browser, so you can perform a workflow, then ask it to use your actions to rebuild the workflow.
We have a browser script at ./integration.ts that automates going to Hacker News and getting the first 10 posts. Convert it to direct network scripts instead. Use the Libretto skill.
Libretto can read network requests from the browser, which it can use to reverse engineer the API and create a script that directly calls those requests. Directly making API calls is faster, and more reliable, than UI automation. You can also ask Libretto to conduct a security analysis which analyzes the requests for common security cookies, so you can understand whether a network request approach will be safe.
We have a browser script at ./integration.ts that is supposed to go to Availity and perform an eligibility check for a patient. But I'm getting a broken selector error when I run it. Fix it. Use the Libretto skill.
Agents can use Libretto to reproduce the failure, pause the workflow at any point, inspect the live page, and fix issues, all autonomously.
You can also use Libretto directly from the command line. All commands accept --session <name>
to target a specific session.
npx libretto open <url> # launch browser and open a URL
npx libretto snapshot --objective "..." # capture PNG + HTML and analyze with an LLM
npx libretto exec "<code>" # execute Playwright TypeScript against the open page
npx libretto close # close the browser
Run npx libretto help
for the full list of commands.
All Libretto state lives in a .libretto/
directory at your project root. See the configuration docs for details on config files, sessions, and profiles.
Join our Discord to connect with other developers, get help, and share what you've built:
For longer-form threads, head to GitHub Discussions. Found a bug? Open an issue.
MIT License — use it freely in commercial and open-source projects.
For local development in this repository:
pnpm i
pnpm build
pnpm type-check
pnpm test
Source layout:
packages/libretto/src/cli/
— CLI commandspackages/libretto/src/runtime/
— browser runtime (network, recovery, downloads, extraction)packages/libretto/src/shared/
— shared utilities (config, LLM client, logging, state)packages/libretto/test/
— test files (*.spec.ts
)packages/libretto/README.template.md
— source of truth for the repo and package READMEspackages/libretto/skills/libretto/
— source of truth for the Libretto skill
Run pnpm sync:mirrors
after editing packages/libretto/README.template.md
or anything under packages/libretto/skills/libretto/
.
To check that generated READMEs, skill mirrors, and skill version metadata are in sync without fixing them, run pnpm check:mirrors
. To release, run pnpm prepare-release
.
Note
This is an early-stage project under active development. APIs may change before version 1.0. We recommend pinning to specific versions in production.
Built by the te
▸ 展开全文
04-16 00:00 · 招聘,AI人才,初创公司,YC孵化,技术社区
Adaptional (YC S25) is hiring AI engineers
Adaptional is building AI for insurance. Insurance is one of the largest industries globally, and still manages huge amounts of work with manual data entry, outsourced teams, human error-checking, and 20-year-old software. We are building a platform that delivers the claude-code experience for insurance teams.
Adaptional’s founders previously built and exited a VC-backed insurance startup and raised a $10m seed round, one of the largest insurtech seeds to date. We are working with top-10 insurance companies and are building a multi-product roadmap rapidly.
As a founding engineer you will build the company at the earliest stage, both technically and culturally. The role of an engineer is evolving from writing code to being full-stack problem solvers (and using lots of AI agents to do it), and we are looking for AI-pilled engineers with strong technical foundations who are excited by this. You’ll build the core product, work directly with our customers, and do whatever it takes to make our customers successful.
We work together in-person at an office in the Presidio, San Francisco.
What you’ll do:
Qualifications:
Compensation:
▸ 展开全文
04-16 00:00 · AI,技术,HackerNews,大模型,AI
Does Gas Town 'steal' usage from users' LLM credits to improve itself?
Does Gas Town 'steal' usage from users' LLM credits & paid services to improve itself? #3649
Description
gastown-release.formula.toml
and beads-release.formula.toml
causes local Gas Town installation to review open Issues on github.com/steveyegge/gastown/actions
, burning through usage on subscribed LLMs and credits on LLMs without the user's explicit direction.
One assumes usage is being used for their own work that Gas Town is directed toward, but instead there is this functionality in the program that takes from users to work on Gas Town issues.
If it's not clear & evident to the reader:
Your Claude credits / usage may be funding fixes to the maintainer's codebase, and your GitHub account submitted PRs to his repo. This happens because GasTown ships with a "contribute back to upstream" workflow baked into the formula set. Your GasTown instance could run polecats that fix bugs in the GasTown software itself and submitting those fixes back upstream as PRs using your GitHub account and Claude credits / usage.
Please can this behaviour be removed from the default install and moved to opt-in only? I understand the desire to want to improve the tool, but the visibility of this is low to users testing out GasTown and I doubt many of the people bleeding credits of their own hobby funds would be happy to find that it's going to this function without express consent beyond an install.
To quote Claude's own investigation into the behaviour:
To summarise what the investigation found across both the source code and the public documentation:
What's actually happening: Your GasTown install shipped with formulas (gastown-release.formula.toml, beads-release.formula.toml) that are designed to push releases and tags directly to steveyegge/gastown using your git credentials. Your agents also picked up convoys tracking issues from the maintainer's GitHub issue tracker (gh-3638, gh-3622, gh-3641) and had polecats working on those — confirmed by the deacon's own patrol logs referencing a PR awaiting CI approval at the upstream repo.
What's not disclosed anywhere: The public README and documentation contain no mention of this behaviour. There's no disclosure that installing GasTown may result in your AI credits and GitHub account being used to fix bugs in and release the GasTown software itself. There's no opt-in, no opt-out, no warning.
Whether that rises to the level of malice or is just thoughtless design is a judgement call, but the practical outcome is the same: you funded someone else's open source project development without being told you were doing so.
e:
My own digging suggests it's likely due to the mayor.md having these lines:
and that Gas Town is proactively raising bugs to the hardcoded formula github URLs in the formula we've been talking about. With a little LLM overreach, this is ending up with cycles being used by the agents to proactively resolve bugs in the main software.
▸ 展开全文
04-15 05:55 · API成本突变,供应商风险,运营成本激增,技术政策争议,大模型依赖
Anthropic 于 3月6日将 Claude Code 的缓存 TTL 从 1 小时降级为 5 分钟,导致用户成本增加 25.9%,配额消耗异常。Hacker News 帖子获 547 分、421 条评论,揭露这一静默操作。
## 核心事实
**时间线**:
- 2月1日‑3月5日:1 小时 TTL(官方默认行为)
- 3月6‑7日:5 分钟缓存开始出现(过渡期)
- 3月8日‑4月11日:5 分钟 TTL 主导(83‑93%)
**成本影响**(基于两台机器、119,866 次 API 调用):
- 3 月多付 .09(Claude‑Sonnet‑4‑6),浪费 25.9%
- 3 月多付 ,198.49(Claude‑Opus‑4‑6),浪费 25.9%
- 总多付金额:.08(17.1%)
## 网友评论摘要
1. **时间巧合**:"这与 Anthropic 3月26日的高峰期限流公告时间吻合——TTL 降级是否是对基础设施负载激增的应对?"
2. **信任危机**:"Anthropic 正在留下太多证据……证明损害和模式已经变得轻而易举。"
3. **技术猜测**:"他们可能根本没有仪表盘监控这类指标,全凭感觉调配置。"
4. **实际体验**:"以前在 Max 计划下能同时处理 3‑5 个项目,现在连一个项目都完不成,5 小时会话就被锁定。"
## 行业意义
1. **成本转嫁**:AI 服务商通过技术参数的静默调整,将基础设施压力转嫁给用户
2. **透明度缺失**:未在更新日志或公告中说明,依赖用户反向工程发现
3. **定价策略**:缓存分级定价(5 分钟 vs 1 小时)成为新的隐性收入来源
4. **竞争态势**:可能形成行业潜规则
## 对中国的启示
1. **技术自主**:缓存、配额、计费系统必须自主可控
2. **透明运营**:技术参数调整应提前公告,维护用户信任
3. **成本监控**:企业需建立 API 成本监控体系,实时检测异常消耗
4. **国产替代**:推动国产大模型在开发工具链的成熟
5. **合规风险**:静默调价可能触发消费者权益或合同违约争议
▸ 展开全文
04-15 00:00 · AI开发工具,开源,凭证安全,编程代理,自动化
Show HN: Kontext CLI – Credential broker for AI coding agents in Go
Kontext CLI is an open-source command-line tool that wraps AI coding agents with enterprise-grade identity, credential management, and governance — without changing how developers work.
Why we built it: AI coding agents need access to GitHub, Stripe, databases, and dozens of other services. Today, teams copy-paste long-lived API keys into .env
files and hope for the best. Kontext replaces that with short-lived, scoped credentials that are injected at session start and gone when the session ends. Every tool call is logged. Every secret is accounted for.
How it works: On first run, kontext start
authenticates you, bootstraps the shared Kontext CLI application for your org, creates a local .env.kontext
file if needed, opens hosted connect for any missing preset providers, exchanges placeholders for short-lived tokens via RFC 8693 token exchange, and launches your agent with those credentials injected. When the session ends, credentials expire automatically.
brew install kontext-security/tap/kontext
If you prefer a direct binary install, download the latest GitHub Release instead:
tmpdir="$(mktemp -d)" \
&& gh release download --repo kontext-security/kontext-cli --pattern 'kontext_*_darwin_arm64.tar.gz' --dir "$tmpdir" \
&& archive="$(find "$tmpdir" -maxdepth 1 -name 'kontext_*_darwin_arm64.tar.gz' -print -quit)" \
&& tar -xzf "$archive" -C "$tmpdir" \
&& sudo install -m 0755 "$tmpdir/kontext" /usr/local/bin/kontext
Then, from any project directory with Claude Code installed:
kontext start --agent claude
That's it. On first run, the CLI handles everything interactively: login, .env.kontext
creation, provider linking when needed, credential resolution, and agent launch.
Run kontext logout
any time to clear the stored OIDC session from your system keyring.
kontext start --agent claude
- Authenticates — opens browser for OIDC login, stores refresh token in system keyring, and lets you clear it later with
kontext logout
- Creates a session — registers with the Kontext backend, visible in the dashboard
- Syncs local env config — creates or updates local
.env.kontext
with managed preset placeholders - Resolves credentials — reads
.env.kontext
, exchanges placeholders for short-lived tokens - Opens hosted connect when needed — if GitHub or Linear still need linking, opens the providers page and retries resolution
- Launches the agent — spawns Claude Code with credentials injected as env vars + governance hooks
- Captures hook events — PreToolUse, PostToolUse, and UserPromptSubmit events streamed to the backend
- Tears down cleanly — session ended, credentials expired, temp files removed
- One command to launch Claude Code:
kontext start --agent claude
— no config files, no Docker, no setup scripts - Ephemeral credentials: short-lived tokens scoped to the session, automatically expired on exit. No more long-lived API keys in
.env
files - Managed local env file: the CLI creates and updates a local
.env.kontext
with managed preset placeholders - Governance telemetry: Claude hook events are streamed to the backend with user, session, and org attribution
- Secure by default: OIDC authentication, system keyring storage, RFC 8693 token exchange, AES-256-GCM encryption at rest
- Lean runtime: native Go binary, no local daemon install, no Node/Python runtime required
- Update notifications: on
kontext start
, a background check queries the public GitHub releases API (cached for 24h, never blocks startup). Disable withKONTEXT_NO_UPDATE_CHECK=1
The CLI creates .env.kontext
locally on first run:
GITHUB_TOKEN={{kontext:github}}
LINEAR_API_KEY={{kontext:linear}}
This file is local. Keep .env.kontext
out of source control in repos that do not already ignore it. The CLI may append more preset provider placeholders later if your org attaches them to the shared Kontext CLI application. Literal values you add stay untouched. Providers connected after the agent has already started become available on the next kontext start
.
Cursor and Codex support are planned, but they are not shipped in this repo yet.
kontext start --agent claude
│
├── Auth: OIDC refresh token from keyring
├── ConnectRPC: CreateSession → session in dashboard
├── Sidecar: Unix socket server (kontext.sock)
│ └── Heartbeat loop (30s)
├── Hooks: settings.json → Claude Code --settings
├── Agent: spawn claude with injected env
│ │
│ ├── [PreToolUse] → kontext hook → sidecar → backend
│ ├── [PostToolUse] → kontext hook → sidecar → backend
│ └── [UserPromptSubmit] → kontext hook → sidecar → backend
│
└── On exit: EndSession → cleanup
Go sidecar: A lightweight sidecar process runs alongside the agent and communicates over a Unix socket. Hook handlers send normalized events through the sidecar so the CLI can keep agent-specific logic out of the backend contract.
Governance telemetry: Session lifecycle and hook events flow to the Kontext backend, powering the dashboard with sessions, traces, and audit history. The CLI captures what the agent tried to do and what happened, but ne
▸ 展开全文