Search
gregariousPinkCat
@arifio
An interactive, runnable TypeScript val by arifio
HTTP
export default async function (req: Request): Promise<Response> {
return Response.json({ ok: true })
unawaitedAsyncExample
@maxm
An interactive, runnable TypeScript val by maxm
HTTP
export async function handle() {
// Schedule work to do later
(async () => {
greatBlushLeopard
@Blackhammer
@jsxImportSource https://esm.sh/react@18.2.0
HTTP
phone: string;
function CVBuilderApp() {
const [personalInfo, setPersonalInfo] = useState<PersonalInfo>({
level: 'Beginner'
// New function to add references
const addReference = () => {
cursor: 'pointer'
function client() {
createRoot(document.getElementById("root")).render(<CVBuilderApp />);
if (typeof document !== "undefined") { client(); }
export default async function server(request: Request): Promise<Response> {
return new Response(`
valle_tmp_37032806114103356497303187371446
@janpaul123
An interactive, runnable TypeScript val by janpaul123
HTTP
import { faker } from "npm:@faker-js/faker";
const SAMPLE_STORIES_KEY = "hn_realistic_sample_stories";
async function initializeSampleStories() {
const existingStories = await blob.getJSON(SAMPLE_STORIES_KEY);
if (!existingStories) {
northernChocolateFish
@seanyang0813
An interactive, runnable TypeScript val by seanyang0813
Cron
import { email } from "https://esm.town/v/std/email";
export default async function(interval: Interval) {
await email({
subject: "This is your daily ping!",

TaylorSwiftMoments
@vawogbemi
@jsxImportSource https://esm.sh/react
HTTP
function Header({ logoUrl, themeColor1, themeColor2 }) {
function EraSelector({ activeEra, onSelectEra }) {
function truncatePrompt(prompt, maxLength = 50) {
function ImageGallery({ images, activeEra, onLike, onDelete }) {
function App() {
function client() {
export default async function server(req: Request): Promise<Response> {
const { OpenAI } = await import("https://esm.town/v/std/openai");
const openai = new OpenAI();
const enhancedPromptResponse = await openai.chat.completions.create({

phagepapersCron
@yawnxyz
An interactive, runnable TypeScript val by yawnxyz
Cron
"phage biocontrol", "phage food safety", "phage agriculture",
"phage crop protection", "environmental phages", "phage biotechnology"
export async function run() {
const randomKeywords = phageKeywords.sort(() => 0.5 - Math.random()).slice(0, 1);
let searches = await getSearches({
console.log("results: ", result);
return result;
export default async function (interval: Interval) {
return await run();
loanCalculator
@arifio
@jsxImportSource https://esm.sh/react@18.2.0
HTTP
import React, { useState } from "https://esm.sh/react@18.2.0";
function LoanCalculator() {
const [loanAmount, setLoanAmount] = useState(100000);
textDecoration: "none",
function client() {
createRoot(document.getElementById("root")).render(<LoanCalculator />);
if (typeof document !== "undefined") { client(); }
export default async function server(request: Request): Promise<Response> {
return new Response(
web_mBvDDUywvr
@dhvanil
An interactive, runnable TypeScript val by dhvanil
HTTP
export async function web_mBvDDUywvr(req) {
return new Response(`<!DOCTYPE html>
<html lang="en">
claude_fa6b572a_8ee1_47bc_bbcf_4c2f2a03d71e
@adagradschool
An interactive, runnable TypeScript val by adagradschool
HTTP
export default function handler(req) {
return new Response(`"\n <!DOCTYPE html>\n <html>\n <head>\n <title>Claude Chat Conversation</title>\n <meta charset=\"UTF-8\">\n <style>\n body {\n font-family: system-ui, -apple-system, sans-serif;\n line-height: 1.5;\n max-width: 800px;\n margin: 0 auto;\n padding: 20px;\n background: #f9fafb;\n }\n .message {\n margin: 20px 0;\n padding: 15px;\n border-radius: 8px;\n }\n .human {\n background: #e5e7eb;\n }\n .assistant {\n background: #dbeafe;\n }\n .role {\n font-weight: bold;\n margin-bottom: 8px;\n }\n </style>\n </head>\n <body>\n \n <div class=\"message human\">\n <div class=\"role\">Human</div>\n <div class=\"content\">I want to build a Chrome extension that automatically cleans up my Chrome tabs in the background. Is it possible with the Chrome extension API? Can it look for all the tabs? Can it combine them? Can it close them? Can it do things like these?</div>\n </div>\n \n <div class=\"message assistant\">\n <div class=\"role\">Claude</div>\n <div class=\"content\">Yes, it's absolutely possible to build a Chrome extension that manages your tabs! The Chrome Extensions API provides robust capabilities for tab management. Let me break down what's possible and show you a basic extension structure.Tab Manager Chrome ExtensionClick to open codeI've created a basic Chrome extension that demonstrates the key tab management capabilities you asked about. Here's what the extension can do:\n\nLook for all tabs: Yes, using chrome.tabs.query({}), you can get all open tabs across all windows.\nCombine/close tabs: Yes, you can:\n\nClose tabs using chrome.tabs.remove(tabId)\nGroup similar tabs by domain\nClose duplicate tabs\nClose inactive tabs\n\n\nBackground operations: Yes, using a service worker (background.js), the extension can:\n\nRun periodic cleanup tasks using chrome.alarms\nMonitor tab activity\nPerform automated management\n\n\n\nThe example extension I've provided includes:\n\nmanifest.json: Declares the necessary permissions and structure\nbackground.js: Handles background tab management\n\nRuns every 30 minutes\nGroups tabs by domain\nCloses duplicates\nCloses inactive tabs (older than 7 days)\n\n\npopup.html/js: Provides a simple user interface\n\nTo make this extension more powerful, you could add features like:\n\nCustom rules for tab management\nWhitelist for tabs to never close\nTab grouping by topic using URL patterns\nAuto-bookmarking before closing\nTab suspension for inactive tabs\nTab search and organization\n\nWould you like me to expand on any of these features or show you how to implement a specific functionality?</div>\n </div>\n \n <div class=\"message human\">\n <div class=\"role\">Human</div>\n <div class=\"content\">I want to have a way to check these tabs - what information do I get about a tab? I want to essentially build an OpenAI thingy on top, like an AI-based thing where I like every few seconds I send a API call to AI and ask it to do something.\nSo I want to know what information do I have about these tabs? Do I know how much I read them? Do I know the description? The web page? I don't know what I do know.</div>\n </div>\n \n <div class=\"message assistant\">\n <div class=\"role\">Claude</div>\n <div class=\"content\">I'll help you understand what tab information is available and then show you how we could integrate this with OpenAI's API for intelligent tab management.Tab Information Analyzer with AI IntegrationClick to open codeHere's what information you can get about tabs and how you can integrate it with AI:\n\nBasic Tab Information (Available directly from chrome.tabs API):\n\n\nid: Unique identifier\nurl: Complete URL\ntitle: Page title\nfavIconUrl: Favicon URL\nstatus: Loading status\nactive: Whether it's the current active tab\npinned: If the tab is pinned\nindex: Position in the window\nwindowId: Which window it belongs to\nopenerTabId: Which tab opened this one\nlastAccessed: When it was last accessed\n\n\nPage Content (Available through content scripts):\n\n\nMeta description\nMain content text\nHeadings\nLinks\nImages\nForms\nAny DOM element\n\n\nUser Interaction Data (Can be tracked):\n\n\nTime spent on the tab\nScroll position\nClick interactions\nKeyboard activity\nForm inputs\nCopy/paste actions\nMouse movements\n\n\nCustom Tracking (You can implement):\n\n\nReading progress (scroll depth)\nForm completion status\nVideo watching progress\nComment/interaction status\nCustom tags or categories\n\nFor AI integration, you can:\n\nPeriodic Analysis:\n\n\nSend tab data to OpenAI every few minutes\nGet recommendations for tab management\nAnalyze content relationships between tabs\nIdentify priority or stale tabs\n\n\nSmart Features:\n\n\nGroup related tabs based on content similarity\nIdentify duplicate or similar content\nSummarize tab content\nPrioritize tabs based on content and usage\nGenerate tab descriptions\nCreate smart bookmarks with AI-generated tags\n\n\nUser Behavior Analysis:\n\n\nTrack reading patterns\nIdentify important tabs based on interaction\nPredict which tabs might be needed soon\nSuggest tab cleanup based on usage patterns\n\nTo implement this:\n\nSet up a background service worker that:\n\n\nCollects tab data periodically\nSends it to OpenAI\nProcesses recommendations\nTakes automated actions\n\n\nUse content scripts to:\n\n\nTrack detailed user interaction\nExtract relevant page content\nMonitor page changes\n\n\nStore historical data in:\n\n\nchrome.storage.local for persistence\nIndex patterns for quick lookup\nUsage statistics for better recommendations\n\nWould you like me to:\n\nShow how to implement any specific feature?\nDemonstrate a particular AI integration pattern?\nExplain how to track specific user behaviors?\nShow how to handle the OpenAI API responses?</div>\n </div>\n \n <div class=\"message human\">\n <div class=\"role\">Human</div>\n <div class=\"content\">So basically you're saying content script is something that's loaded on every page when it's there, and it's like a lightweight analytics script that runs in source data in local storage. Is there a way to do this in a really lightweight way? I don't want to make this a big deal.\nAlso, is it possible to like Chrome also has tab grouping. Is that also possible by API?</div>\n </div>\n \n <div class=\"message assistant\">\n <div class=\"role\">Claude</div>\n <div class=\"content\">Yes, exactly! You can make this really lightweight, and Chrome's tab grouping API is available too. Let me show you a minimal version:Lightweight Tab Manager with GroupsClick to open codeThis lightweight version shows several key features:\n\nSuper Lightweight Content Script:\n\n\nOnly tracks visibility state changes\nMinimal memory footprint\nNo heavy DOM monitoring\nSimple message passing to background script\n\n\nTab Grouping API:\n\n\nchrome.tabs.group(): Creates tab groups\nchrome.tabGroups.update(): Customizes groups (title, color)\nCan automatically group by domain\nCan create, modify, and remove groups programmatically\n\n\nKey Tab Group Features:\n\njavascriptCopy// Create a group\nconst groupId = await chrome.tabs.group({ tabIds: [tab1Id, tab2Id] });\n\n// Update group appearance\nawait chrome.tabGroups.update(groupId, {\n collapsed: true, // Collapse the group\n title: \"My Group\",\n color: \"red\" // Various colors available\n});\n\n// Add tabs to existing group\nawait chrome.tabs.group({ tabIds: [tab3Id], groupId });\n\n// Ungroup tabs\nawait chrome.tabs.ungroup(tabId);\n\nSimple Data Storage:\n\n\nUses a Map for in-memory storage\nCould easily switch to chrome.storage.local for persistence\nMinimal data structure\n\nThe tab grouping API is quite powerful and lets you:\n\nCreate/delete groups\nColor-code groups\nCollapse/expand groups\nMove groups between windows\nAdd/remove tabs from groups\nGet group information\n\nWould you like me to:\n\nShow more tab grouping features?\nMake the tracking even lighter?\nAdd specific AI integration patterns?\nShow how to handle group collapse/expand events?</div>\n </div>\n \n </body>\n </html>\n"`, {
headers: {
"Content-Type": "text/html",
aqi
@amoeba
AQI Alerts Get email alerts when AQI is unhealthy near you. Set up Click Fork Change location (Line 4) to describe your location. It accepts fairly flexible English descriptions which it turns into locations via nominatim's geocoder API . Click Run Background This val uses nominatim's geocoder to get your lat, lon, and air quality data from OpenAQ. It uses EPA's NowCast
AQI Index calculation and severity levels. Learn more: https://www.val.town/v/stevekrouse.easyAQI
Cron
import { email } from "https://esm.town/v/std/email?v=9";
import { easyAQI } from "https://esm.town/v/stevekrouse/easyAQI?v=5";
export async function aqi(interval: Interval) {
const location = "seattle, wa"; // <-- change to place, city, or zip code
const data = await easyAQI({ location });

myApi
@austinchappell
An interactive, runnable TypeScript val by austinchappell
Script
export function myApi(name) {
return "hi " + name;
valle_tmp_275862191060511468456294552341596
@janpaul123
// This val will respond with a simple HTML page saying "Hello, world!"
HTTP
// This val will respond with a simple HTML page saying "Hello, world!"
export default async function main(): Promise<Response> {
const htmlContent = `
<!DOCTYPE html>