StealthCam is a lightweight remote monitoring tool that turns your computer into a live surveillance device. It captures video and audio streams from your system and securely transmits them to your connected phone in real-time via a web interface.
Perfect for discrete monitoring, security purposes, or remote surveillance when you need to keep an eye on your space from anywhere.
StealthCam's computer client interface showing video preview, stream controls, and ghost mode functionality
- Live video and audio streaming from computer to mobile device
- High-quality WebRTC streaming with minimal latency
- Adaptive quality settings (Low/Medium/High) based on connection
- Real-time peer-to-peer connection for maximum security
- JWT-based authentication system
- Secure WebRTC connections with STUN servers
- No data persistence - streams are not recorded or stored
- Password-protected access to prevent unauthorized viewing
- Computer Client: Acts as the surveillance camera (streams video/audio)
- Mobile Client: Remote viewing device with touch controls
- Responsive web interface works on any device with a browser
- No app installation required
- Ghost Mode: Instantly black out the computer screen (ESC to exit)
- Discrete interface that doesn't draw attention
- Silent operation with minimal system footprint
- Quick activation and deactivation controls
- Start/stop streaming remotely from mobile device
- Request live feeds on-demand
- Volume control and mute functionality
- Fullscreen viewing for better monitoring
- Real-time connection status indicators
- Node.js 18 or higher
- Modern web browser with WebRTC support
- Camera and microphone on the computer to monitor
- Stable internet connection
-
Clone the repository
git clone https://github.com/yourusername/stealthcam.git cd stealthcam
-
Install dependencies
npm install
-
Set up environment variables
# Copy the example environment file cp .env.example .env.local
Update
.env.local
with your configuration:JWT_SECRET=your-super-secret-jwt-key-here NEXTAUTH_SECRET=your-nextauth-secret-here NEXTAUTH_URL=http://localhost:3000
-
Start the development server
npm run dev
-
Access the application
- Open
http://localhost:3000
in your browser - Set up your surveillance system in minutes!
- Open
-
Login on the target computer
- Open StealthCam in a web browser
- Create an account with username/password
- Select "Computer" as device type
- Grant camera and microphone permissions
-
Configure stream settings
- Choose quality: Low (640x480), Medium (720p), or High (1080p)
- Test camera and microphone functionality
- Use Ghost Mode to hide the interface when needed
-
Start surveillance
- Click "Start Stream" to begin broadcasting
- The computer is now ready for remote monitoring
-
Connect from your phone
- Open the same URL on your mobile device
- Login with the same username/password
- Select "Mobile" as device type
-
View live feed
- Tap "Request Stream" to connect to the surveillance feed
- Use touch controls for volume, mute, and fullscreen
- Monitor in real-time from anywhere
- Quick Hide: Use the Ghost Mode button to instantly black out the computer screen
- Emergency Exit: Press ESC key to exit Ghost Mode quickly
- Discrete Access: Login appears as a normal web application
- Silent Running: Minimal system impact during operation
- Frontend: Next.js 15, React 19, TypeScript
- Real-time: Socket.IO, WebRTC for P2P streaming
- Authentication: JWT tokens, bcryptjs encryption
- Styling: Tailwind CSS with responsive design
- Streaming: MediaStream API, RTCPeerConnection
stealthcam/
βββ src/
β βββ app/ # Next.js app router
β β βββ api/ # Authentication APIs
β β βββ globals.css # Global styling
β βββ components/ # React components
β β βββ ComputerClient.tsx # Surveillance computer interface
β β βββ MobileClient.tsx # Mobile viewing interface
β β βββ LoginForm.tsx # Authentication form
β βββ contexts/ # React contexts
β β βββ AuthContext.tsx # Authentication state
β β βββ StreamContext.tsx # Streaming state
β βββ lib/ # Utility libraries
β βββ socket.ts # Socket.IO configuration
β βββ webrtc.ts # WebRTC utilities
βββ public/ # Static assets
βββ package.json # Project dependencies
- All sessions are protected with JWT tokens
- Passwords are hashed using bcryptjs
- No sensitive data is stored permanently
- WebRTC provides encrypted P2P connections
- Use HTTPS in production environments
- STUN servers handle NAT traversal securely
- No video or audio data is recorded or stored
- Streams are live-only and disappear when disconnected
- No analytics or tracking implemented
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Working camera and microphone
- Stable internet connection
- Minimum 2GB RAM recommended
- Any smartphone or tablet with a web browser
- Internet connection (WiFi or cellular)
- Modern browser with WebRTC support
Important: This software is intended for legitimate surveillance and monitoring purposes only. Users are responsible for:
- Complying with local privacy and surveillance laws
- Obtaining proper consent when monitoring spaces with people
- Using the software ethically and legally
- Ensuring they have permission to monitor the location
The developers are not responsible for misuse of this software.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
# Clone the repo
git clone https://github.com/yourusername/stealthcam.git
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Include browser version, OS, and error messages
- v0.1.0 - Initial release
- Basic streaming functionality
- Authentication system
- Ghost mode for stealth operation
- Mobile and computer clients
You can run StealthCam directly in the cloud using Replit β no need to install anything or be on the same Wi-Fi network.
- Go to https://replit.com and log in or sign up.
- Click on the "Create Repl" button.
- Select "Import from GitHub" and paste this repo URL: https://github.com/kamalarnav04/StealthCam
- Once it imports, open the Shell tab and run: npm install
- Create a file named .env.local in the root folder
- Then start the development server
- Copy the temporary link shown in the Replit webview β you can now access StealthCam from anywhere π