
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@profullstack/ferroframe
Advanced tools
A Svelte-host TUI framework for Node.js - Build terminal interfaces with the power of Svelte
A Svelte-host TUI framework for Node.js - Build terminal interfaces with the power of Svelte
FerroFrame brings the declarative, component-based approach of Svelte to terminal user interfaces. Write TUIs using familiar web development patterns while leveraging Svelte's reactivity and compilation optimizations.
ferro
command for all operations# Install FerroFrame CLI globally
pnpm add -g @profullstack/ferroframe
# Create a new FerroFrame app
ferro new my-tui-app
# Navigate to your app
cd my-tui-app
# Start development server
ferro dev
# Install the FerroFrame CLI globally
pnpm add -g @profullstack/ferroframe
# Verify installation
ferro --version
# Add to existing project
pnpm add @ferroframe/core @ferroframe/components
# For Svelte integration
pnpm add @ferroframe/svelte-adapter svelte
The ferro
CLI provides a unified interface for all FerroFrame operations:
# Create a new FerroFrame app (interactive)
ferro new my-app
# Create with specific template
ferro create my-svelte-app
# Then choose: 1) Basic TUI App or 2) Svelte TUI App
# Start development server with hot reload
ferro dev # Shows help
ferro dev core # Watch core package
ferro dev components # Watch components package
ferro dev svelte-adapter # Watch svelte-adapter
ferro dev example hello-world # Run hello-world example
ferro dev example svelte-todo # Run svelte-todo example
# Build all packages for production
ferro build
# Run tests
ferro test
# Watch files and run tests automatically
ferro watch
# Lint your code
ferro lint
# Format code with Prettier
ferro format
# Show all available commands
ferro help
ferro --help
ferro -h
# Show version
ferro version
ferro --version
ferro -v
// main.js
import { FerroHost } from '@ferroframe/core';
import { Box, Text, Input, Button } from '@ferroframe/components';
const app = Box({
display: 'flex',
flexDirection: 'column',
padding: 2,
gap: 1,
children: [
Text({
children: 'Welcome to FerroFrame! 🎨',
bold: true,
color: 'cyan'
}),
Input({
placeholder: 'Enter your name...',
onSubmit: (value) => console.log(`Hello, ${value}!`)
}),
Button({
children: 'Click me!',
variant: 'primary',
onClick: () => console.log('Button clicked!')
})
]
});
const host = new FerroHost();
await host.mount(app);
<!-- App.svelte -->
<script>
import { Box, Text, Input, Button } from '@ferroframe/components';
import { createFormStore } from '@ferroframe/svelte-adapter';
const form = createFormStore({
name: '',
email: ''
});
function handleSubmit() {
console.log('Form submitted:', $form);
}
</script>
<Box direction="column" padding={2}>
<Text bold color="cyan">Welcome to FerroFrame!</Text>
<Box direction="row" gap={1}>
<Input
placeholder="Name"
value={$form.name}
onChange={(v) => form.setFieldValue('name', v)}
/>
<Input
placeholder="Email"
value={$form.email}
onChange={(v) => form.setFieldValue('email', v)}
/>
</Box>
<Button onClick={handleSubmit} variant="primary">
Submit
</Button>
</Box>
// main.js
import { FerroHost } from '@ferroframe/core';
import { SvelteAdapter } from '@ferroframe/svelte-adapter';
import App from './App.svelte';
const adapter = new SvelteAdapter();
const app = await adapter.mount(App);
const host = new FerroHost();
await host.mount(app);
FerroFrame uses a host-based architecture where:
Documentation is coming soon. For now, please refer to:
examples/
directorypackages/
for implementation detailsferro help
Box
- Flexbox container with borders and paddingText
- Styled text rendering with colorsInput
- Text input field with cursor managementButton
- Interactive button with variantsList
- Scrollable, selectable list# Clone the repository
git clone https://github.com/profullstack/ferroframe.git
cd ferroframe
# Install dependencies
pnpm install
# Run tests
ferro test
# or
pnpm test
# Build all packages
ferro build
# or
pnpm build
# Watch mode for development
ferro watch
# or
pnpm watch
# Run specific example
ferro dev example hello-world
ferro dev example svelte-todo
Check out the examples directory for:
Run examples using the CLI:
# Run hello-world example
ferro dev example hello-world
# Run svelte-todo example
ferro dev example svelte-todo
FerroFrame supports comprehensive styling options:
import { Box, Text } from '@ferroframe/components';
Box({
// Flexbox properties
display: 'flex',
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
gap: 2,
// Box model
padding: 2,
margin: 1,
// Borders
border: 'single',
borderColor: 'cyan',
// Sizing
width: 50,
height: 20,
children: [
Text({
children: 'Styled Text',
color: 'green',
backgroundColor: 'black',
bold: true,
underline: true
})
]
});
Current Version: 0.3.0 Status: ✅ Production Ready - All core features implemented
ferro
commandContributions are welcome! Please feel free to submit a Pull Request.
MIT © Profullstack, Inc.
Ready to build your next TUI? Get started with ferro new my-app
🚀
FAQs
A Svelte-host TUI framework for Node.js - Build terminal interfaces with the power of Svelte
The npm package @profullstack/ferroframe receives a total of 297 weekly downloads. As such, @profullstack/ferroframe popularity was classified as not popular.
We found that @profullstack/ferroframe demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.