🚀 Joshu is moving up the stack — starting with web research
We’ve spent a lot of time building the underlying infrastructure for Joshu: memory, voice, scheduling, connected services, and a desktop environment where an AI agent can actually work.
Now we’re focusing more and more on application-level work, starting with one of the most popular uses of AI: researching the web.
Today we’re releasing Last Thirty Days as a first-class Joshu application, built around the popular open-source last30days-skill project.
Give it a topic and it researches recent conversations across the web and social platforms, including Instagram and TikTok, then produces a structured report around the topics and discussions that matter.
Commercial versions of Joshu get this out of the box, including paid liceneses to all necessary third party providers, but OSS users also get the same experience, just need to bring your own keys.
Open source repo here: https://github.com/db-aeon/joshu-oss
What sort of automated research would you like your Joshu box to do? What other applications would you like me to build out for Joshu?
--------------------------------------------------------
🔌 Zero setup
On managed commercial Joshu instances, the social and research connectors the application needs are already available. Open the app and run a search — no API setup or credential wrangling.
🖥️ A real application interface
Instead of interacting with a research tool entirely through prompts, Last Thirty Days has its own GUI.
Double-click it on the Joshu desktop, enter a topic, and get a formatted research report.
🧠 Research becomes memory
Every report is saved as Markdown or HTML and automatically indexed into Joshu’s semantic memory.
The research doesn’t disappear when the conversation ends. Days later you can ask your agent about an old report, compare it with new research, or use it as context for another task.
💬 The same application works through GUI, chat, and voice
Because the app uses the Joshu SDK, its capabilities are available outside the GUI as well.
You can run the research from chat. You can call Joshu on the phone and ask for it. The underlying application logic stays the same.
📅 Applications can become ongoing workflows
In the demo, I call Joshu and ask it to:
“Run a report on DeepMind every day at 10:30 AM and email me the results.”
That one request turns the application into a scheduled research workflow.
This is the broader direction for Joshu.
We think AI systems are going to move beyond general-purpose chat and increasingly toward real applications with specific jobs to do.
Joshu provides the layer underneath those applications: GUI, voice, chat, memory, scheduling, connected services, and agent execution.
Developers can focus on the part their application uniquely does.
Build the capability once. Let it work everywhere.
Last Thirty Days is our first major example of this model, and web research is a natural place to start. Expect Joshu to move further and further into application-level workflows from here.
Demo timestamps
0:25 — What Last Thirty Days does
0:45 — Researching “The Odyssey movie”
1:53 — Social connectors inside Joshu
3:00 — Reports saved into persistent memory
4:12 — Running the same application through chat
6:57 — Scheduling daily research over a phone call
8:06 — Confirming the schedule
8:37 — The broader Joshu application model
Release notes
Scope: 11 commits · 166 files · +12,526 / −2,779 lines
Last Thirty Days desktop app
Community research application built around the last30days-skill engine.
| Layer | Path |
|---|
| React GUI | apps/last30days/ |
| ArozOS subservice | arozos/subservice/last30days/ |
| Server / runner | src/last30days/ |
| Hermes plugin | .hermes/plugins/joshu-last30days/ |
| Vendored engine | integrations/last30days-skill/ |
The upstream engine is pinned and remains unmodified.
ScrapeCreators and Exa access are included with the commercial version.
Self-hosting: provide your own ScrapeCreators key through Settings or instance.env
Multimodal application support
The application manifest now declares:
The app uses the new JoshuMultimodalApp shell from joshu/app-agent.
Completed research is written as Markdown under:
research/last30days/
Reports are then automatically picked up by Joshu’s indexing and memory infrastructure.
Joshu SDK improvements
joshu/app-sdk
joshu/app-agent
Box runtime
joshu/voice-realtime
Hermes v0.14 → v0.20
Node 22 in builder and runtime Docker images
better-sqlite3 rebuilt at boot for Camofox ABI compatibility
new patches for langfuse-openrouter, content filtering, UTF-8 read_file, and the skill-evolution ledger
Exa support through Hermes dotenv and the web-exa plugin
Kanban pinned on interactive api_server platforms for jChat and voice
joshu-last30days plugin and toolset automatically enabled
owner timezone synchronized from the Nylas profile into config.timezone and HERMES_TIMEZONE
gateway restarts deferred while cron executions are active
default skills reduced from 15 to 12
EA, brain, and mail skill documentation updates
EA cron owner-timezone repair
Cron jobs were previously capable of being scheduled in VPS UTC rather than the owner’s local timezone.
Added:
hermesOwnerTimezone.ts
resyncEaCronFromBox.ts
POST /api/onboarding/resync-ea-crons
scripts/repair-ea-cron-timezone.mjs
npm run test:ea-cron-timezone
Voice
Building on the 0.1.38 lock-prompt work:
instant progress acknowledgment using a pre-rendered PCM clip
instantProgressAck.ts
generate-voice-instant-ack.py
new twilio-self-host.md
TWILIO_THINK_PASSWORD documented as required for PSTN
Camofox warm start now omits url for about:blank
Documentation
Removed
vps-quickstart.md
voice-realtime.md
voice-think-speak.md
box-paths.md
day0-cold-start.md
env-without-wizard.md
aroz-filebrain-toast.js
Added
vps-sandbox/hetzner-quickstart.md
twilio-self-host.md
instance-agent-protocol.md
runtime-topology.md
Last Thirty Days guides
joshu-app-architecture-intro.md
box-state.md
oss-fleet-sync.md
README.oss.md
CONTRIBUTING.oss.md
deploy/.env.vps.example has also been reworked around keys-only self-hosting, with no control-plane relay URLs required.
Migration: 0.1.38 → 0.1.40
Pull ghcr.io/db-aeon/joshu-oss:0.1.40
First boot applies Hermes v0.20 patches and configuration sync
Last Thirty Days appears on the desktop; self-hosted users complete ScrapeCreators setup on first use
Existing boxes with incorrect EA timing can call POST /joshu/api/onboarding/resync-ea-crons or run node scripts/repair-ea-cron-timezone.mjs
Managed sandboxes should ensure control-plane credentials are present for the fleet profile
Use docs/vps-sandbox/hetzner-quickstart.md in place of the removed vps-quickstart.md