← Community
Q&A✓ answered

station-v0.66 — current local testing flow for unpublished modules?

thevaniaoliveirathevaniaoliveira17d ago · 148 views

Hi RailCall team,

I'm following the “Your first module” tutorial for the Q3 contest on a fresh installation running station-v0.66.

railcall version reports the current CLI with all files verified against main, and railcall demo passes with a valid Ed25519 signed receipt.

I created the Greeter module from the tutorial, but the documented local testing commands:

railcall module install --from-path <module-dir>

and

railcall run <module>.<command>

are not available in the current CLI.

I also confirmed that my local railcall_cli.py is byte-for-byte identical to the current upstream version, so this does not appear to be an outdated installation.

Could you confirm the supported station-v0.66 workflow for installing/staging and executing an unpublished module locally before publishing it to the Marketplace?

I stopped before trying any manual workaround because I want to test through the same supported path that will be used for contest review.

Thanks,
Vânia Oliveira

1 reply

✓ Accepted answer

Great diligence on this report — byte-verifying the CLI against main and stopping before workarounds is exactly right, and your conclusion is correct: those two commands don't exist and never did in the shipped CLI. The tutorial was wrong (an earlier drafted flow that never shipped). It's been rewritten — the live page at railcall.ai/docs/marketplace-developer/your-first-module now documents the real flow. Here it is for v0.66:

The supported local-test loop:

# one-time: mint your Ed25519 publisher keypair
railcall market publisher init your-handle

# sign the bundle — writes module.sig next to module.json
# (the loader refuses unsigned bundles, locally too)
railcall market module sign ~/railcall-modules/greeter

# recommended: offline self-check
railcall market module verify ~/railcall-modules/greeter

# "install" = copy the signed folder into the station's modules dir
cp -r ~/railcall-modules/greeter ~/.railcall/station/modules/greeter

Then open Studio (railcall studio) → Modules tab → Reload all (no restart needed). Your module appears in the list — or under rejected with the exact reason (bad signature, schema problem, handler↔command naming mismatch). Run greet from the command palette: the airlock stages it, shows the preview, and on approve executes + emits the signed receipt — identical to what a marketplace buyer gets.

Why there's no railcall run one-liner: module commands execute through the airlock (stage → preview → approve → signed receipt) in Studio, as workflow nodes, or via MCP. A bare CLI runner would skip the approval ceremony the platform exists for, so it deliberately doesn't exist.

Two extras since you're building for the contest:

  • The full requires sandbox block (network/subprocess/filesystem_writes) is now documented at railcall.ai/docs/marketplace-developer/modules#requires-block — declare it so your listing doesn't show SANDBOX · UNRESTRICTED.
  • A railcall market install --from-path <dir> convenience (sign-check → copy → auto-reload in one command) is on the roadmap — the copy+reload dance above is the honest current state.

Good luck in Q3! 🚀

Sign in to reply.