Show HN: AttaLambda: a language where types and data are made of untyped lambdas I made a programming language! I call it AttaLambda. The idea is this: a usable Lisp-shaped language where all the meaningful computation is done in untyped lambda calculus. Logic, arithmetic, data structures, control flow, even the types — all untyped lambdas. A small, explicit Racket layer sits at the boundary to handle the outside world, plus some macros for syntactic sugar. This is its story: A couple years ago, I wanted to play with untyped lambda calculus and go beyond where tutorials usually stop. They show booleans, numbers, arithmetic, maybe the Y-combinator — and then stop. I wanted them to keep going. So I started a project called All The Lambdas. Using Racket set to lazy, I used only one Racket construct for actual computation — lambda — and built integers, rationals, lists, binary digit-list number encodings, search algorithms, and more. Then I found Functional Programming Through Lambda Calculus by Greg Michaelson. In it, Michaelson sketches the bones of a language built in untyped lambda calculus, including a type system where typed objects are themselves pair functions containing a type tag and value. I found that intriguing and implemented and extended the idea, still entirely with untyped lambdas. I don't have a background in programming language theory, so I was figuring it out as I went. Then I stopped tinkering with it for a while. Recently I came back and thought: why not turn this into a real usable language with the help of coding agents? I reused most of All The Lambdas as the foundation. Thus AttaLambda was born. Some additional details: * Rat, its number type, uses binary digit-list encodings instead of Church numerals, so numbers scale with their number of binary digits rather than their value * errors are lambda-encoded values, not Racket exceptions, and propagate through the language like ordinary data * the Racket host only performs irreducibly external operations; even things like HTTP parsing, routing, and response construction stay in the pure lambda world * recursion uses lambda-calculus recursion: no loops or true self-reference, just the Y-combinator underneath * automated purity checks catch accidental cheating, like native computation leaking into the pure parts * syntax like multi-argument lambdas, let, cond, and list is just macro sugar that reduces to unary lambdas and application A couple code examples:
(short of print, every single thing here reduces to unary untyped lambdas) Factorial: #lang attalambda
(rec factorial n =
(cond
((eq n 0) 1)
(else (mult n (factorial (sub n 1))))))
(print (factorial 10))
Which prints: 3628800
Or an exact harmonic sum: #lang attalambda
(print
(reduce add 0
(map (lambda (n)
(unwrap-ok (div 1 n)))
(range 1 8))))
Which prints exactly: 363/140
As far as I know, no programming language combines all these features: Michaelson-style type tags built from untyped lambdas, exact rationals backed by binary digit lists, errors as lambda values, and real-world programs where almost all computation stays inside the lambda core. None of those pieces are individually new, but I don't know of another language combining them this way. Download:
https://ift.tt/ICNckl3 Code:
https://ift.tt/qHATgFo Original All The Lambdas:
https://ift.tt/pb4h36F https://attalambda.com September 14, 2026 at 09:51PM
Show HN: Pizza Bot – An inbox for AI agents that work in the background Hi HN - long-time lurker (since 2012!), first time poster. Pizza Bot is a self-hosted desktop app for Mac, Windows, and Linux that runs AI agents in the background and exposes them through an email-like UI. Finished work shows up in Unread, and anything waiting on your approval shows up in Action. It's Apache 2.0-licensed, there's no signup and no telemetry, and you bring your own model provider: Anthropic, Amazon Bedrock, Google Gemini, OpenAI, OpenRouter, or a local model through Ollama. There are builds on the releases page, or you can run it from source. Pizza Bot started as an internal passion project I worked on with a small team at Amazon. The whole thing came out of my frustration at having to manually log CRM activities through a browser form. I built a simple REST API called "JoeBot" that connected to my authenticated browser session over CDP and filled out the form for me using Playwright. Then I hacked up a quick Obsidian plugin so I could trigger it from my local notes (no AI and no MCP servers involved). This caught on quickly. My fellow AWS Solutions Architect Igor Fil joined up with me, and we rebranded the project as "Pizza Bot," named after Amazon's two-pizza teams. We started seeing what other automations we could build. We found a GraphQL API we could query and hacked up some "recipes" to pull data out of the CRM to help with meeting prep. That worked great, and it was right around the time MCP servers seemed to be taking off, so we decided to expose Pizza Bot as an MCP server instead, so it would be available to AI tools through natural language. This was a decent solution for technical users, but the Account Managers who live inside our CRM system wanted something too. We decided to rebuild Pizza Bot as an Electron desktop app modeled after an email inbox, so it would be familiar to non-technical users and would run on both Mac and Windows. We also bundled internal MCP servers as OCI images and hosted them in Amazon ECR as an "addon marketplace" so users could install them with one click without having to set up Amazon developer tooling. The project took off organically and expanded outside of AWS into the wider Amazon organization globally. More than 2,000 people ended up using it for meeting prep, email drafting, Slack summaries, CRM logging, prioritizing their day, and web research. Once apps like Claude Cowork and Amazon's own Quick Desktop came out, we realized the real growth opportunity was outside of Amazon. Rather than try to rip out the Amazon-specific integrations, we rebuilt Pizza Bot once more as an open source project. We leaned on coding agents heavily, which is the only reason a team our size could pull off a full rewrite. I'm pleased to say it's finally public, and we're hoping to bring in community members and see where it goes. We'd like to do for knowledge workers what Claude Code and Codex have done for programmers. A couple of things to know up front. Most of what made Pizza Bot useful on day one inside Amazon came from that internal catalog of skills and MCP servers for Amazon's own systems, and none of it could come out with the app. So it ships thinner than the version those 2,000 people used, and building that catalog back up for tools other people actually use is where we need the most help. It's also a community project and not an AWS service, so there's no support or SLA behind it. The Windows and Linux builds aren't signed yet either. On the technical side, Pizza Bot is a server and a client. The desktop app bundles both, or you can point a client at a remote backend; personally, I self-host the server on my home network and reach it from my phone over Tailscale. The server owns the thread lifecycle and checkpoints state with DeepAgents and LangGraph, and clients rehydrate from it as needed, so you can disconnect mid-run and pick the thread back up from another client. Approval pauses outlive the session that created them and collect in an Action filter, so you can answer an hour later from a different device. The agent you talk to has a sandboxed QuickJS interpreter that can reach your filesystem only if you grant it a folder, but its main job is to delegate. Each subagent is a 1:1 mapping of a Skill, and an Activity bar shows that subagent and the tool calls it's making as it works. Memory is opt-in and stored as plain markdown files on your machine. Every tool call is explicit, including looking up a memory - we err on the side of transparency to reduce surprises. Tools come from MCP servers, and skills are ordinary SKILL.md files with a per-tool approval policy, so existing skills that don't require a code interpreter should still work. What I'd most like to hear about is where the app itself gets in your way, the kind of problem you can't fix by writing a skill or an MCP server. I'm around today to answer questions! https://ift.tt/NkEOnIl September 15, 2026 at 08:50PM
Show HN: The bottom 50% of U.S. households are short after essentials (BLS data) https://whats-left-over.pages.dev/#s=50_40_10&c=1&u=person&t=0&tm=cbo&b=0&ts=100&k=0&cc=12201&im=nominal&by=2000&ir=2.5&ao=0&ar=20&at=200000&ip=10&rm=sp500&rr=8&pv=portfolio&p=1&iv=left&hp=1&e=food.housing.transport.health.insurance September 15, 2026 at 08:54PM
Show HN: Pull every comment out of a Google Sheet, in the browser I spend a lot of time working in Google sheets. Often, I will collaborate with up to 50 other people in the same workbook. One specific org I worked at had a strong preference for using comment threads in Sheets extensively to ask questions, give feedback, and raise risks. Sheets would regularly get 70+ comment threads across multiple tabs with dozens of contributing teams. As the owner of the sheet, I wanted a way to document the comments to retain traceability on all of the various conversations. To my surprise, there was no function built into sheets to scrape, count, sort or manage comments at all. I also couldnt find any good third party add-ons to solve the problem. So I built one myself. I discovered that the Drive API gives you the comment text, author and state, but doesnt give the location of the comment which was crucial. Thankfully, the .xlsx export has xl/threadedComments with the cell reference, timestamp, author, resolved flag and parent ID. How it runs: JSZip in the browser, no sign-in, nothing uploaded anywhere. I am in the process of having the app verified to be hosted on Google Workspace Marketplace, but in the mean time the tool is available at: https://ift.tt/tZ3zSTy https://ift.tt/zGnxNV4 September 15, 2026 at 01:20AM
Show HN: Threshyr – An offline automatic time tracker with on-device AI I've built and continuously improved Threshyr based on the problem I faced myself. I was working on more than 3 projects at one time. At the end of any day/week/month if I had to calculate how many hours I have worked on each one, I would always not be able to calculate an accurate time. Because I had to just reconstruct it from memory instead of any real record. Every tracker I tried solved this either by:
- sending my activity to their cloud or
- by making me press start and stop, which I most of the time forget or
- requires a monthly subscription. So I built Threshyr to address all of these pain points. It is a background time tracker for Windows and macOS. It runs entirely locally, recording the duration and window title for active application and active browser(excluding Firefox) domain locally on your machine. It comes up with predefined categories for installed application and browser domain. Each category can be marked as Productive(green color), Neutral(gray color) and Unproductive(red color). Users can modify predefined and can also create their own custom categories. Threshyr utilizes categories, tagging rules and light weight offline AI model called Threshyr AI to classify activity for projects. Users can review the activity classified by Threshyr-AI, can modify the project or even create rules based on the classification. As users review more and more activities, Threshyr-AI gets more accurate with each review. Threshyr lets users see how focused they were, how often and for how long they were distracted, and what was their duration for their productive and unproductive apps and domains. Threshyr also calculates hourly and fixed totals for client projects. Privacy is the core constraint I built this around:
- No account, no password, no email required.
- No keystroke logging, no screenshots, no behavioral analytics.
- Zero cloud inference.
- There are exactly two daily network calls: an anonymous daily ping to check for version updates and an active user ping. Threshyr is closed source right now. I am a solo developer in Pakistan trying to build a longer term and sustainable alternative to expensive time trackers. Right now, it is in pre-release. It is completely free to use with no obligation to pay (though there is an optional early-purchase at $29/year if you want to support it). After the pre-release ends Threshyr will be priced at $58 per year. No monthly subscription. I might add a lifetime price. Linux builds and team features are not available yet. Threshyr does not support Firefox I’d appreciate any feedback from the community, especially on how well the classification and tagging rules work for your specific workflows. Also let me know your thoughts about a lifetime price. I'll be in the thread to answer any questions. https://threshyr.com September 14, 2026 at 11:23PM
Show HN: Stackray – Detect any website's tech stack Stackray is an open source builtwith alternative that also provides OSINT details. Scan a domain or URL and view detected frameworks, business tools, subdomains, DNS records, etc. You can deploy your own instance to schedule recurring scans and get alerts through email using Resend or through Slack. You can also invite teammates and make API keys to programmatically use Stackray. https://stackray.app September 12, 2026 at 11:45PM
Show HN: EarthToPixels – Turning real cities into explorable pixel art Hi HN! A few friends and I built EarthToPixels, a project that turns real-world cities into explorable pixel-art maps. We fine-tuned an open-source Qwen image model and built a pipeline that takes aerial imagery, generates pixel-art tiles, and keeps neighboring generations visually continuous so they can be stitched into a large map. We built the pipeline to work with arbitrary coordinates rather than a specific city. For the first complete render, we chose our hometown: João Pessoa, Brazil.
You can explore it here:
https://ift.tt/m6pRFAa Would love to hear what you think, especially about the technical side. https://ift.tt/C7lR2BG September 12, 2026 at 11:14PM
Show HN: SyntheticAIdata – synthetic data for CV, 100k free credits/month Hi HN, I'm Goran, founder of syntheticAIdata. Collecting and labeling images for computer vision takes time, especially when you need specific objects, viewpoints, or conditions. We built syntheticAIdata to help developers generate those examples. You can vary environments, camera angles, backgrounds, and distractors, and apply real-world camera simulations to generate automatically labeled images for your application. Datasets can be downloaded or sent directly to Edge Impulse. You can generate 100,000 images for free each month. Registration is required. Try it out: https://ift.tt/YjhKbXT I'd love to hear what you'd use it for and which controls or features you're missing. https://ift.tt/hmH9TPq September 11, 2026 at 11:02PM
Show HN: Bodily Oddities When I was about 11 years old, my best friend and I were playing during recess at school, and I was carrying him around on my back, presumably pretending to be a multipart attack robot. All of a sudden, my heart started hurting, and I collapsed to my knees, and the robot was no more. Every time I inhaled, it would feel like a spike was being driven into my heart, and my breathing got completely shallow. I was sure I was done for, when all of a sudden, after an exhale, it disappeared. It wasn't until I was in my twenties that I learned this was called Precordial catch syndrome and it happens to most everyone. Every friend I've told about it was surprised, and also most knew the feeling. I collected a growing list of strange things bodies do ever since. And now finally I made it into a little page for others to see: https://ift.tt/ALD5I38 It includes a form to tell me about new things, if you think they belong on the page. Feedback welcome! https://ift.tt/ALD5I38 September 11, 2026 at 02:03AM
Show HN: Let coding agents work across your laptop, remote machines, and S3 I wanted to use Codex on my laptop to run kernel optimization experiments on my GPU box, with models stored in S3. That meant having Codex figure out file transfers and remote execution just to get an experiment running. Lots of opportunities to get something wrong before touching the actual kernel. Then what happens in the next session? Either Codex figures it out again, or the previous session leaves behind scripts and instructions. That works, but now there's a small infrastructure project to maintain along with the actual experiments. I decided to try out a more streamlined approach and started building Ridge. It gives agents common operations for accessing data and running commands across different environments, through MCP, a CLI, or Python. Local, SSH, Docker, and S3 are the initial providers. Copying a model from the bucket to the GPU box is one operation. There's also support for giving subagents narrower access and coordinating operations on shared resources with locks. I'm curious who else has run into this. What were you trying to do, and what did you end up building to make it work? Would appreciate feedback on the approach. https://ift.tt/h1NRrUT September 10, 2026 at 10:57PM