Avatar

stevekrouse

mayor of val town
Likes
473
vawogbemi avatar
vawogbemi
byob
Email
BYOB - Build Your Own Bot You can chat with llms over email, the email thread functions as memory. The biggest thing is that you can instantly create a chat like interface with llms. Pair that with back end data and functions and you got something really powerful. Take it further Custom domains Use cloudflare email workers or a similiar service to create a custom email domain and route any incoming emails to this val. Use any email api set up with that domain to send emails ie. Sendgrid, Resend, Postmark. Toolings Llms can uses tools , meaning you can make this an agent and a whole lot more useful.
1
itseieio avatar
itseieio
opengraphImageCreator
HTTP
@jsxImportSource https://esm.sh/react
2
jonbo avatar
jonbo
cabinAdjacentTweets
Cron
scans tweets and then uses an llm to decide whether to and where to send it to forked from https://www.val.town/v/stevekrouse/twitterAlert
1
artivilla avatar
artivilla
farcasterKeyHook
HTTP
FarcasterCustomKeywordHook Simple service notify you your configured keywords on Farcaster to Slack 3 steps: Create a Neynar webhook (https://dev.neynar.com/webhook), via no-code to plug in your forked val URL as their webhook target URL. Add events and keywords you want notified to your slack bot. In the example below, we watch for the text "outpaint". Create a bot to send messages to Slack. https://docs.val.town/integrations/slack/send-messages-to-slack/#_top Add your SLACK_WEBHOOK_URL provided in the step under Val environment variables. https://www.val.town/settings/environment-variables Wait for keyword or Cast in Farcaster with keyword. Will change depending on your event types selected in Step 1-2. Profit 💸💸
1
maxm avatar
maxm
wide
HTTP
WIDE Store any unstructured JSON data. Retrieve it with an expressive and efficient query system. WIDE is a library and service hosted on Val Town. Authenticate and use it with your Val Town credentials, or fork it and connect it to your own Clickhouse Instance. import { ValSession } from 'https://esm.town/v/maxm/valSession'; import { Wide } from 'https://esm.town/v/maxm/wide'; // Use your Val Town API Token to create a session const wide = new Wide(await ValSession.new(Deno.env.get("valtown"))) // Write any data. await wide.write([ { user: {id: 1, name: 'Alice', email: 'alice@example.com' }}, { user: {id: 2, name: 'Bob', email: 'bob@example.com' }}, { user: {id: 3, name: 'Charlie', email: 'charlie@example.com' }}, ]); await wide.fields("user.") // => [ // { fieldName: "user.email", fieldType: "string", count: 3 }, // { fieldName: "user.id", fieldType: "number", count: 3 }, // { fieldName: "user.name", fieldType: "string", count: 3 } // ] await wide.values("user.email") // [ // { value: "bob@example.com", count: 1 }, // { value: "charlie@example.com", count: 1 }, // { value: "alice@example.com", count: 1 } // ] await wide.search({ start: new Date(Date.now() - 1000 * 60 * 10), end: new Date(), filters: [{ fieldName: "user.name", operator: "equals", value: "Alice" }], }) // [{ user: { name: "Alice", email: "alice@example.com", id: 1 } }];
2
andreterron avatar
andreterron
bombCycloneOutageTracker
HTTP
🌪️ × 🔌 Bomb Cyclone - PSE Power Outage Tracker https://bomb-cyclone.terron.app Tracking PSE power outages after the Bomb Cyclone of Nov 19th, 2024. The data is obtained every 15 minutes using this cron job: @andreterron/PSEoutages Tracking started on Nov 20th, at around 7pm PST. If you know how others can help those affected by the outage, please add a comment here. I'll keep updating this readme and the website with more information.
1
stevekrouse avatar
stevekrouse
dns_record_debugger
HTTP
Proxied Web Browser – DNS Debugger Proxied web browser for debugging new DNS records It's difficult to verify new DNS records. If you check too early, the old records may get cached on your computer, browser, or local network. This tool uses a proxied fetch so you can always view your web page uncached. Uses @std/fetch on the backend to ensure the DNS records of the request are from new places every request. Version 4 of this val also showed DNS records, pulled on the server, but I removed that featured, because those records are likely subject to caching. It'd be an improvement to this tool if we could add an uncached DNS check in here. In a couple min I wasn't able to find a free DNS checker API. Pull requests welcome!
2
vawogbemi avatar
vawogbemi
TaylorSwiftMoments
HTTP
Forked from stevekrouse/falDemoApp
1
trob avatar
trob
multilingualchatroom
HTTP
A simple chat room to share with friends of other languages, where each user can talk in their own language and see others' messages in their own language. Click and hold a translated message to see the original message. Open the app in a new window to start your own, unique chatroom that you can share with your friends via the room URL. TODO: BUG: fix the issue that keeps old usernames in the "[User] is typing" section after a user changes their name. BUG: Username edit backspaces is glitchy. UI: Update the title for each unique chatroom to make the difference clear. UI: mobile friendly. Feature: the ability for the message receiver to select a part of a translation that is confusing and the author will see that highlight of the confusing words and have the opportunity to reword the message or... Feature: bump a translation to a higher LLM for more accurate translation. Feature: use prior chat context for more accurate translations. Feature: Add video feed for non-verbals while chatting.
5
elliotbraem avatar
elliotbraem
getProfileProfilePage
HTTP
@jsxImportSource https://esm.sh/react
1
stevekrouse avatar
stevekrouse
cerebras_searcher
HTTP
@jsxImportSource https://esm.sh/react
3
pomdtr avatar
pomdtr
fetchValInfo
Script
Usage import { fetchValInfo } from "https://esm.town/v/pomdtr/fetchValInfo" const val = await fetchValInfo(import.meta.url) console.log(val.id) What's the difference with extractValInfo ? @pomdtr/extractValInfo get metadata synchronously by analysing the val import url, while @pomdtr/fetchValInfo perform an http call to the val.town REST api. Only use fetchValInfo if you need some metadata that are not available from extractValInfo .
1
stevekrouse avatar
stevekrouse
createGithubIssue
Script
This helper function creates a Github Issue in the specified repo, assigned to whoever you want. It also adds it into the current milestone. We use this in @stevekrouse/renderEmails to auto-create issues when we have server restarts, in the current milestone, assigned to @maxm, our infra guy. import { createIssue } from 'https://esm.town/v/stevekrouse/createGithubIssue'; console.log( await createIssue({ title: "Test Issue", body: "This is a test issue.", repoOwner: "val-town", repoName: "val.town", assignee: "maxmcd", githubToken: Deno.env.get("GITHUB_CONTRIBUTIONS"), }), );
1
willthereader avatar
willthereader
versionLoggger
Script
This helper function logs the version number of the val. import { logUrlVersion } from "https://esm.town/v/stevekrouse/versionLoggger"; logUrlVersion(import.meta.url); Or if you want a one liner with no imports: console.log("Version: " + import.meta.url.match(/[?&]v=([^&]*)/)?.at(1));
1
stevekrouse avatar
stevekrouse
git_jiggy
HTTP
Needs GITHUB_CONTRIBUTIONS key set in your Val Town Environment Variables . Get this token here: https://github.com/settings/personal-access-tokens/new Give it basically the minimum permissions. It should only pull public data anyways.
2
sedson avatar
sedson
drumMachine
HTTP
Freesound Drum Machine Freesound is an amazing sample library with thousands of user-uploaded sounds. Many of them are amazing and useful sound effects. Many others are hilarious and silly home recordings. This toy lets you (try to) make music from that chaos.
1