
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
@argmax/local-server
Advanced tools
Node.js wrapper for managing Argmax Local Server on macOS
A Node.js wrapper for the Argmax Local Server binary that provides:
npm install @argmax/local-server
Get the Argmax Local Server binary from Argmax.
For support, contact support@argmaxinc.com.
For development purposes, this package includes a create-dev-cli.sh script that creates a signed CLI wrapper. This is useful when you need to run the Argmax Local Server binary through a wrapper for development or testing.
# Create a signed dev_cli binary (requires macOS with Xcode command line tools)
./node_modules/@argmaxinc/local-server/dist/create-dev-cli.sh <TEAM_ID>
This will create a dev_cli binary that can be used as a launch wrapper:
# Use the dev_cli as a launch wrapper
npx @argmax/local-server start --launch-wrapper ./dev_cli --binary /path/to/argmax-local-server
Note: This script is intended for development use only and requires:
import { ArgmaxLocalServer } from '@argmax/local-server';
const server = new ArgmaxLocalServer({
binaryPath: '/path/to/argmax-local-server',
apiKey: 'your-api-key'
});
// Start the server
await server.startProcess();
// Initialize with a model
await server.init({
apiKey: 'your-api-key',
model: 'tiny.en'
});
// Wait for ready
await server.waitForReady();
// Get status
const status = await server.status();
console.log('Server status:', status);
// Clean shutdown
await server.shutdown();
await server.stopProcess();
// Create transcriber
const transcriber = server.createTranscriber({ source: 'microphone' });
// Set up event listeners
transcriber.on('transcription', (result) => {
if (result.isFinal) {
console.log(`[FINAL] ${result.transcript}`);
} else {
console.log(`[INTERIM] ${result.transcript}`);
}
});
// Connect and start transcribing
await transcriber.connect({
keywords: ['Argmax', 'AI', 'transcription'],
});
# Start server
npx @argmax/local-server start --binary /path/to/argmax-local-server
# Start with launch wrapper for development
npx @argmax/local-server start --launch-wrapper /path/to/wrapper --binary /path/to/argmax-local-server
# Check status
npx @argmax/local-server status
# Initialize with model
npx @argmax/local-server init --api-key your-key --model tiny.en
# Real-time transcription
npx @argmax/local-server transcribe --api-key your-key
Main class for server management.
constructor(config: ArgmaxLocalServerConfig)
Methods:
startProcess() - Start the server processstopProcess() - Stop the server processstatus() - Get server statusinit(config) - Initialize server with modelwaitForReady(timeout?) - Wait for server to be readyreset() - Reset server stateshutdown() - Shutdown servercreateTranscriber(options?) - Create WebSocket transcriberinterface ArgmaxLocalServerConfig {
binaryPath: string; // Path to argmax-local-server binary
launchWrapper?: string | string[]; // Optional wrapper command/script to launch the binary
host?: string; // Server host (default: localhost)
port?: number; // Server port (default: 50060)
apiKey?: string; // Argmax API key (ax_your_key from https://app.argmaxinc.com/)
autoRestart?: boolean; // Auto-restart on failure (default: true)
verbose?: boolean; // Enable verbose logging
args?: string[]; // Additional CLI arguments
}
ARGMAX_SERVER_PATH=/path/to/argmax-local-server
ARGMAX_API_KEY=your-api-key
You can use the Deepgram SDK to connect to your local Argmax server instead of Deepgram's cloud service:
const { createClient, LiveTranscriptionEvents } = require("@deepgram/sdk");
// Instead of connecting to Deepgram cloud:
// const deepgram = createClient(process.env.DEEPGRAM_API_KEY);
// Connect to local Argmax server:
// Note: Use your Argmax API key (ax_...) instead of Deepgram API key
const deepgram = createClient(process.env.ARGMAX_API_KEY, {
global: {
websocket: {
options: {
url: "ws://localhost:50060"
}
}
}
});
// Use the same Deepgram SDK API as usual
const connection = deepgram.listen.live({
model: "any model here", // ignored
language: "en",
smart_format: true, // not supported
interim_results: true,
encoding: 'linear16',
channels: 1,
sampleRate: 48000
});
connection.on(LiveTranscriptionEvents.Open, () => {
console.log("Connection opened.");
});
connection.on(LiveTranscriptionEvents.Transcript, (data) => {
console.log(data.channel.alternatives[0].transcript);
});
This allows you to keep your existing Deepgram SDK code while routing requests to your local Argmax server.
Note: For testing purposes, you can start the server with --any-token to allow any token value.
# Install dependencies
npm install
# Run tests
npm test
# Run with real server binary
ARGMAX_SERVER_PATH=/path/to/binary npm test
MIT
For questions and support, contact support@argmaxinc.com.
FAQs
Library for managing Argmax Local Server on macOS
We found that @argmax/local-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.