Skip to main content
Glama

TinyAssets

An agent of your own in the chat bubble: connect any model source, then build what you need from there.

Try it

The hosted app is the supported way in. Android is in a closed Google Play test, not a public store listing. The steps, what to expect, and how to report a bug are in docs/getting-started/testers.md.

You connect your own model subscription. This project does not supply a model. What is free, and what is not built yet, is on https://tinyassets.io/fine-print/.

Running the production server on your own machine is not a supported install. Status: docs/getting-started/self-hosting.md.

Related MCP server: goalslot-mcp

Direction

The founder owns this section. To re-steer, replace a line; never add one beside it. python scripts/sync_direction.py copies it verbatim into AGENTS.md.

  1. Product: a default bubble agent that continuously matches and beats the industry-leading main agents (Grok Bot, Muse, ChatGPT dots, Claude Duet), shipped as a starter package of agent files that runs on the user's own engine: their provider's unmodified CLI on their subscription or key, or their own main agent; users customize the agent's files and interface to build anything.

  2. Plumbing: an agent is files (AGENTS.md, skills, MCP config, hooks) plus TinyAssets state, run by an unmodified engine (a provider's CLI in the user's sandbox, the user's main agent over MCP, or pi's CLI); TinyAssets is everything around the engine and reaches every engine through one MCP door; one agent definition for every engine; no provider-specific code: engine differences are data.

  3. The agent's abilities are editable files, skills and packages. The platform does not build feature editors or pre-built features.

  4. Users connect any model source; default to their strongest connected source.

  5. Foundational patches are brought FORWARD, so pre-migration band-aids never delay positive architectural moves. Weigh the totality of pending work, so each module is always pursuing or maintaining its best architecture, and refactor and reorder the remaining work to get there. (Today that foundation is the clean-sheet platform, as one clean cutover: platform/ is the only path, one migration in a short maintenance window after a full backup, and the old stack, with its docs, skills and rules, is deleted in the same change.)

  6. Ship live fast and verify live. LESS process: delete stale docs, tests and notes rather than adding more.

  7. Long-term goal: in both the Google Play and Apple App Store, and listed in the major agents' connector directories (Meta Muse, ChatGPT, Claude) so users find TinyAssets by search, not only as a custom connector, with growing downloads and positive reviews.

  8. 24/7 uptime with zero hosts online: every surface works with no host machine on.

No longer the direction: "a global goals engine", Goal ladders, and fantasy as the default domain. Where any older doc disagrees with this section, this section wins.

Contributing

Python 3.11+. Tests run offline; providers are mocked, so no API keys are needed. How to contribute, and what this repo does not promise, is CONTRIBUTING.md.

git clone https://github.com/TinyAssets/TinyAssets.git
cd TinyAssets
python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
python -m scripts.ci_structural_guards               # the fast guards every PR runs
pytest -q tests/test_<area>.py                       # the tests your change touches
ruff check <changed files>

CI runs the rest. How work is done here: AGENTS.md.

License

MIT — see LICENSE. Built by Jonathan Farnsworth (jonathan.m.farnsworth@gmail.com, @Jonnyton); the only co-authors are the project's own AI agents.

Available Tools

12 tools
add_canonA
Idempotent
Inspect

Add a reference document to the canon/ directory for the daemon to ingest.

Canon files provide worldbuilding context — character sheets, maps, lore documents, timelines, style guides, or any reference material the daemon should know about.

Inputs: content (required), filename (required).

add_noteAInspect

Add a note that the daemon reads at each scene boundary.

Notes are the primary feedback mechanism — use them to steer the story, protect elements you like, flag concerns, or record observations.

Inputs: text (required), category.

get_activityA
Read-onlyIdempotent
Inspect

Read the most recent lines from the daemon's activity log.

Shows scene completions, reviews, and errors.

Inputs: lines.

get_chapterB
Read-onlyIdempotent
Inspect

Read a completed chapter from the daemon's output.

Inputs: book (required), chapter (required).

get_premiseA
Read-onlyIdempotent
Inspect

Read the current story premise from PROGRAM.md or soul.md.

The premise seeds the daemon's creative direction.

Inputs: no named parameters.

get_progressA
Read-onlyIdempotent
Inspect

Read the human-readable progress summary.

Includes story outline, word counts, and current chapter status.

Inputs: no named parameters.

get_review_stateA
Read-onlyIdempotent
Inspect

Read the latest review-state snapshot including daemon phase, word count, and accept rate.

Inputs: no named parameters.

get_statusA
Read-onlyIdempotent
Inspect

Read the daemon's current status including phase, word count, and accept rate.

Call this first to orient yourself.

Inputs: no named parameters.

get_work_targetsA
Read-onlyIdempotent
Inspect

Read the durable work target registry.

Shows what the daemon is working on, what's queued, and lifecycle state.

Inputs: no named parameters.

pauseA
Idempotent
Inspect

Pause the daemon at the next scene boundary.

The daemon checks for a pause signal between scenes.

Inputs: no named parameters.

resumeA
Idempotent
Inspect

Resume a paused daemon by removing the pause signal.

Inputs: no named parameters.

set_premiseA
DestructiveIdempotent
Inspect

Write or overwrite the story premise as soul.md plus PROGRAM.md.

The daemon reads this at startup to seed the story direction. Overwrites any existing premise — use get_premise first if you want to edit rather than replace.

Inputs: text (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 12 tools

    Disambiguation3/5

    Most tools are clearly distinct, but get_status, get_review_state, and get_progress all report overlapping data such as word count, phase, and progress. The descriptions help somewhat, but an agent could plausibly select the wrong one when checking daemon state.

    Naming Consistency4/5

    The set mostly follows a clear verb_noun snake_case pattern like add_note, get_premise, get_progress, and add_canon. The pause and resume verbs break the noun-object pattern slightly, giving a minor inconsistency rather than a serious one.

    Tool Count5/5

    Twelve tools is a well-scoped size for a story-daemon management server. Each tool has a defined role in reading state, steering the story, or controlling execution, and none feel purely redundant.

    Completeness4/5

    Core workflows are covered: orient via status, read progress/chapters, steer via notes, add worldbuilding canon, and pause/resume the daemon. Minor gaps exist, such as no way to list or remove notes/canon, but the primary interaction model is still workable.

    Maintenance

    ActivityActive
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • -
      license
      Not graded
      quality
      Not graded
      maintenance
      Goal-oriented narrative state machine for AI agents, exposing live world/scene context as MCP tools and resources.
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables MCP apps to manage durable, model-defined goal phases with persistent state, checkpointed progress, and safe resumption after interruptions or lost turns, ensuring elapsed time never implies completed business work.
      1
      MIT
    • F
      license
      A
      quality
      C
      maintenance
      Enables MCP clients and LLMs to create, edit, list, and delete arbitrary daily numeric goals, log and correct entries, and retrieve timezone-correct progress, history, and streak status with at-least or at-most targets.
      10
      -