Access X Pro (TweetDeck) — Tutorial
Step-by-step guide to accessing X Pro, setting up multi-column monitoring, and managing columns for real-time X/Twitter monitoring.
Works on: Browser Console
Difficulty: Beginner
Time: 5-10 minutes
Requirements: Logged into x.com, X Premium+ subscription ($16/mo)
Prerequisites
- Logged into x.com in your browser
- Browser DevTools console (F12 or Cmd+Option+J on Mac)
- X Premium+ subscription ($16/mo) -- X Pro is exclusive to Premium+
Quick Start
- Go to any page on x.com
- Open DevTools Console (F12, then click the Console tab)
- Paste the script to check access and navigate to X Pro
- X Pro opens at
pro.x.comin a new tab - Re-run the column management script on
pro.x.com
Configuration
const CONFIG = {
autoNavigate: true, // Navigate to X Pro automatically
setupColumns: false, // Attempt to add default monitoring columns
columnPresets: [ // Column types to add when setupColumns = true
'home',
'notifications',
'mentions',
'search',
],
searchTerms: [ // Search columns to add
// 'from:nichxbt',
// '#xactions',
],
showColumnInfo: true, // Display info about existing columns
delayBetweenActions: 2000, // ms between UI actions
};
| Option | Type | Default | Description |
|---|---|---|---|
autoNavigate |
boolean | true |
Auto-navigate to X Pro |
setupColumns |
boolean | false |
Add preset columns automatically |
columnPresets |
array | [...] |
Column types to set up |
searchTerms |
array | [] |
Search queries for search columns |
showColumnInfo |
boolean | true |
List existing columns |
Step-by-Step Guide
Step 1: Check Access and Navigate to X Pro
(async () => {
const sleep = (ms) => new Promise(r => setTimeout(r, ms));
console.log('📊 X PRO (TWEETDECK) - XActions by nichxbt\n');
// Check access
const isPro = window.location.hostname.includes('pro.x.com');
const proLink = document.querySelector('a[href*="pro.x.com"]');
if (isPro) {
console.log('✅ You are on X Pro.');
} else if (proLink) {
console.log('✅ X Pro link found — you have access.');
} else {
console.log('⚠️ X Pro access not detected.');
console.log('💡 X Pro requires Premium+ subscription ($16/mo).');
console.log(' Subscribe at: x.com/i/premium_sign_up');
}
// Show column guide
console.log('\n══════════════════════════════════════════════════');
console.log('📚 X PRO COLUMN TYPES');
console.log('══════════════════════════════════════════════════\n');
const columnTypes = {
'🏠 Home Timeline': 'Your main timeline',
'🔔 Notifications': 'All notifications',
'💬 Mentions': 'Posts that mention you',
'✉️ Messages': 'Direct messages',
'🔍 Search': 'Search results for a query',
'📋 List': 'Posts from a specific list',
'❤️ Likes': 'Posts you have liked',
'📈 Trending': 'Trending topics',
'👥 Followers': 'New follower activity',
};
for (const [name, desc] of Object.entries(columnTypes)) {
console.log(` ${name} — ${desc}`);
}
console.log('\n💡 Tips for effective monitoring:');
console.log(' • Keep 4-6 columns for best readability');
console.log(' • Use Search columns for tracking keywords or competitors');
console.log(' • Pin important columns to the left');
console.log(' • Use List columns to group accounts by topic');
// Navigate
if (!isPro) {
console.log('\n🚀 Opening X Pro...');
if (proLink) {
proLink.click();
console.log('✅ Clicked X Pro link.');
} else {
window.open('https://pro.x.com', '_blank');
console.log('✅ Opened pro.x.com');
}
console.log('💡 Run this script again on pro.x.com to manage columns.');
}
})();
Step 2: Scan Existing Columns (Run on pro.x.com)
(() => {
console.log('📊 SCAN X PRO COLUMNS - XActions by nichxbt\n');
const columns = document.querySelectorAll(
'[data-testid="column"], [class*="column"], section[aria-label]'
);
if (columns.length === 0) {
console.log('ℹ️ No columns detected. This may not be the X Pro interface.');
console.log('💡 Make sure you are on pro.x.com');
return;
}
console.log(`📋 Found ${columns.length} column(s):`);
console.log('─'.repeat(50));
const columnData = [];
columns.forEach((col, i) => {
const header = col.querySelector('[data-testid="columnHeader"], h2, [role="heading"]');
const name = header?.textContent?.trim()
|| col.getAttribute('aria-label')
|| `Column ${i + 1}`;
const tweets = col.querySelectorAll('article[data-testid="tweet"]');
console.log(` ${i + 1}. 📌 ${name} (${tweets.length} posts visible)`);
columnData.push({ index: i, name, tweetCount: tweets.length });
});
sessionStorage.setItem('xactions_xpro', JSON.stringify({
scannedAt: new Date().toISOString(),
columns: columnData,
}));
console.log('\n💾 Column data saved to sessionStorage.');
})();
Step 3: Add a Search Column (Run on pro.x.com)
(async () => {
const sleep = (ms) => new Promise(r => setTimeout(r, ms));
const searchQuery = 'from:nichxbt'; // Change to your desired search
console.log(`🔍 Adding search column for: "${searchQuery}"...`);
const addBtn = document.querySelector('[data-testid="addColumn"]')
|| document.querySelector('button[aria-label*="Add column"]')
|| document.querySelector('button[aria-label*="add"]');
if (!addBtn) {
console.log('⚠️ "Add column" button not found. Add columns manually in X Pro.');
return;
}
addBtn.click();
await sleep(2000);
const searchOption = [...document.querySelectorAll('[role="menuitem"], [role="option"], button')]
.find(el => el.textContent.toLowerCase().includes('search'));
if (searchOption) {
searchOption.click();
await sleep(2000);
const searchInput = document.querySelector('[data-testid="SearchBox_Search_Input"]')
|| document.querySelector('input[type="text"]');
if (searchInput) {
searchInput.focus();
searchInput.value = searchQuery;
searchInput.dispatchEvent(new Event('input', { bubbles: true }));
await sleep(1000);
const submitBtn = searchInput.closest('form')?.querySelector('button[type="submit"]');
if (submitBtn) {
submitBtn.click();
} else {
searchInput.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }));
}
console.log(`✅ Search column added for: "${searchQuery}"`);
}
} else {
console.log('⚠️ Could not find search option. Add the column manually.');
}
})();
Expected Console Output
📊 X PRO (TWEETDECK) - XActions by nichxbt
✅ X Pro link found — you have access.
══════════════════════════════════════════════════
📚 X PRO COLUMN TYPES
══════════════════════════════════════════════════
🏠 Home Timeline — Your main timeline
🔔 Notifications — All notifications
💬 Mentions — Posts that mention you
✉️ Messages — Direct messages
🔍 Search — Search results for a query
📋 List — Posts from a specific list
❤️ Likes — Posts you have liked
📈 Trending — Trending topics
👥 Followers — New follower activity
💡 Tips for effective monitoring:
• Keep 4-6 columns for best readability
• Use Search columns for tracking keywords or competitors
• Pin important columns to the left
• Use List columns to group accounts by topic
🚀 Opening X Pro...
✅ Opened pro.x.com
💡 Run this script again on pro.x.com to manage columns.
Tips & Tricks
Premium+ required -- X Pro (formerly TweetDeck) is exclusively available with the Premium+ subscription ($16/mo).
Multi-account support -- X Pro supports managing multiple accounts from a single interface if you have delegate access.
Keyboard shortcuts -- X Pro supports keyboard shortcuts for faster navigation. Press
?to see available shortcuts.Column width -- You can resize columns by dragging the edges. Narrow columns show more columns on screen.
Search column power -- Search columns support advanced search operators like
from:user,to:user,#hashtag, and date filters.Separate domain -- X Pro runs on
pro.x.com. Scripts must be run on that domain, notx.com.
Troubleshooting
| Problem | Solution |
|---|---|
| "X Pro access not detected" | X Pro requires Premium+ ($16/mo). Subscribe at x.com/i/premium_sign_up. |
| No columns showing | The page may still be loading. Wait for the interface to fully render. |
| Cannot add columns | The "Add column" button may have different styling. Try clicking the + icon in the interface. |
| Scripts not working on pro.x.com | DevTools console is domain-specific. Open console on pro.x.com, not x.com. |
Related Scripts
| Feature | Script | Description |
|---|---|---|
| Subscribe to Premium | src/subscribePremium.js |
Get Premium+ for X Pro access |
| Media Studio | src/mediaStudio.js |
Media library and analytics |
| View Analytics | src/viewAnalytics.js |
Post and account analytics |
| Tweet Scraping | src/scrapers/twitter/index.js |
Scrape tweet data |
⚡ Ready to try Access X Pro (TweetDeck) — Tutorial?
XActions is 100% free and open-source. No API keys, no fees, no signup.
Browse All Scripts